【发布时间】:2016-09-27 05:59:53
【问题描述】:
我有两个表:sys_users 和 sys_roles。
创建两个表后,我尝试使用以下语句创建外键:
Alter table `hr_001`.`sys_users`
add constraint
`constraint_user_role` foreign key (`Role`) references
`hr_001`.`sys_roles`(`ID`) on delete Set null
但它给了我以下错误
查询:Alter table
hr_001.sys_users添加约束constraint_user_role外键 (Role) 引用hr_001.sys_roles(ID...Error Code: 1005 Can't create table 'hr_001.#sql-2e5c_1f' (errno: 150)
我的建表语句是
CREATE TABLE `sys_users` (
`ID` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Username` VARCHAR (100) NOT NULL,
`Password` VARCHAR (100) NOT NULL,
`Active` TINYINT (1) NOT NULL DEFAULT '1',
`Role` INT (11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE = INNODB AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8;
CREATE TABLE `sys_roles` (
`ID` INT (10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Role` VARCHAR (50) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE = INNODB AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8;
有人可以帮忙吗?
【问题讨论】:
-
请张贴这两张表的
create table code。 -
但我认为这是你应该首先看的stackoverflow.com/questions/1233032/…
-
@1000111 create statements CREATE TABLE
sys_roles(IDint(10) unsigned NOT NULL AUTO_INCREMENT,Rolevarchar(50) NOT NULL, PRIMARY KEY (ID)) ENGINE= InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 CREATE TABLEsys_users(IDint(10) unsigned NOT NULL AUTO_INCREMENT,Usernamevarchar(100) NOT NULL,Passwordvarchar(100) NOT NULL,Activetinyint (1) NOT NULL DEFAULT '1',Roleint(11) NOT NULL, PRIMARY KEY (ID) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 -
@1000111 看看我编辑的问题,谢谢
标签: mysql foreign-keys