首页 文章

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

提问于
浏览
-1

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

我有一个内容表,我有一个带有主键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 回答

  • 1

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

    Using FOREIGN KEY Constraints:

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

相关问题