所以我试图添加一个外键约束并得到错误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?
答案 0 :(得分:1)
这是因为这两列是不同的数据类型。
<强> Using FOREIGN KEY Constraints 强>
外键和引用键中的对应列必须 有类似的数据类型。 整数类型的大小和符号必须是 相同。字符串类型的长度不必相同。对于 非二进制(字符)字符串列,字符集和排序规则 必须是一样的。