mysql在索引列上添加外键错误1005 errno 150

时间:2015-12-27 09:13:45

标签: mysql foreign-keys

所以我试图添加一个外键约束并得到错误1005 errno 150.我不明白的是我试图引用一个主键,所以这些列应该已经编入索引,不是吗? / p>

我有一个内容表,我有一个带有主键ID的类别表。

我正在尝试运行

alter table contents
add constraint fk_categories_id foreign key (category_id) references categories(id);

这是为了显示类别表id列:

show columns from categories \G;
*************************** 1. row ***************************
  Field: id
  Type: int(10) unsigned
  Null: NO
  Key: PRI
  Default: NULL
  Extra: auto_increment

所以我的问题是,当我尝试引用主键时,为什么我得错误1005 errno 105?

1 个答案:

答案 0 :(得分:1)

这是因为这两列是不同的数据类型。

<强> Using FOREIGN KEY Constraints

  

外键和引用键中的对应列必须   有类似的数据类型。 整数类型的大小和符号必须是   相同。字符串类型的长度不必相同。对于   非二进制(字符)字符串列,字符集和排序规则   必须是一样的。