【问题标题】:MYSQL ALTER Can't assign foreign key (errno: 150)MYSQL ALTER 无法分配外键(错误号:150)
【发布时间】:2013-05-09 19:08:18
【问题描述】:

我正在尝试分配外键。

我有一个“用户”表:

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;

返回错误信息:

ERROR 1005 (HY000): 无法创建表 'thermal.#sql-62d9_4' (errno: 150)

我错过了什么?

【问题讨论】:

    标签: mysql foreign-keys alter


    【解决方案1】:

    找到了。

    问题是两个 user_id 列的类型不同,在用户中它是“mediumint unsigned”,而在项目中它只是“mediumint”,不完全确定“unsignued”是什么意思我没有拿起关于这个。

    解决方法是改变它们:

    ALTER TABLE projects
    MODIFY COULMN user_id MEDIUMINT UNSIGNED;
    

    然后我从上面运行我的命令,一切正常。

    【讨论】:

      猜你喜欢
      • 2013-12-08
      • 2014-03-24
      • 2010-10-23
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      • 2016-02-11
      相关资源
      最近更新 更多