[英]can't create table `info` (foreign key constraint is incorrectly formated
我正在使用navicat
软件。
我创建了users
表。
我的专栏:
id - fname
id
是primary
并auto 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.