繁体   English   中英

无法创建表`info`(外键约束的格式错误

[英]can't create table `info` (foreign key constraint is incorrectly formated

我正在使用navicat软件。

我创建了users表。

我的专栏:

id  - fname

idprimaryauto increment

现在,我想创建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.id字段相同的数据类型int(10) UNSIGNED

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;

在此语句中,请尝试删除“用户”上的引号,因为它是表名,

*外键( user_id )参考** users**id )删除级联*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM