gpt4 book ai didi

mysql - 无法创建表 `info`(外键约束格式不正确

转载 作者:行者123 更新时间:2023-11-29 11:18:06 24 4
gpt4 key购买 nike

我正在使用 navicat 软件。

我创建了users表。

我的专栏:

id  - fname

id主要自动增量

现在,我想创建 info 表:

CREATE TABLE `info` (
`user_id` int NOT NULL ,
`fname` varchar(255) NULL ,
PRIMARY KEY (`user_id`),
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
)
;

但是我收到了这个错误:

can't create table `info` (foreign key constraint is incorrectly formated)

我的用户表sql:

CREATE TABLE `users` (
`id` int(10) UNSIGNED NOT NULL,
`username` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

最佳答案

您的 SQL 脚本中有两个错误。

1) 创建USERS表时,请为id字段创建索引。如果没有创建索引,则不会在另一个表中为其创建外键。

CREATE TABLE `users` (
`id` int(10) UNSIGNED NOT NULL,
`username` varchar(255) DEFAULT NULL,
INDEX `id_index` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

2) 创建 info 表时,user_id 字段应具有与 users 中相同的数据类型 int(10) UNSIGNED。 id 字段。

CREATE TABLE `info` (
`user_id` int(10) UNSIGNED NOT NULL,
`fname` varchar(255) NULL ,
PRIMARY KEY (`user_id`),
INDEX `fk_INFO_idx` (`user_id`),
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

关于mysql - 无法创建表 `info`(外键约束格式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39416925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com