[英]MYSQL ALTER Can't assign foreign key (errno: 150)
我正在尝试分配外键。
我有一个“用户”表:
user_id mediumint(8) unsigned, NotNull, Primary Key, AutoIncrement,
first_name varchar(20) , NotNull
last_name varchar(40) , NotNull
和其他 我有一个“项目”表:
project_id int(10) unsigned, NotNull, Primary Key, AutoIncrement,
project_name varchar(20) , NotNull
user_id mediumint(8) , NotNull
而且我刚刚了解了外键,它们听起来很棒,但是我无法使它们起作用...
ALTER TABLE projects
ADD CONSTRAINT FK_projects
FOREIGN KEY (user_id)
REFERENCES users(user_id)
ON UPDATE CASCADE
ON DELETE CASCADE;
返回错误信息:
错误1005(HY000):无法创建表'thermal。#sql-62d9_4'(errno:150)
我想念什么?
找到了。
问题在于两个user_id列不是同一类型,在用户中,它是“ mediumint unsigned”,而在项目中,它只是“ mediumint”,不能完全确定“ unsignued”是什么意思,所以我没有接受。
解决方案是更改它们:
ALTER TABLE projects
MODIFY COULMN user_id MEDIUMINT UNSIGNED;
然后我从上面执行命令,一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.