繁体   English   中英

MYSQL ALTER无法分配外键(错误号:150)

[英]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.

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