【发布时间】:2018-08-14 23:13:18
【问题描述】:
我在我的机器 (OS X 10.13.6) 上导入我的 MySQL 数据库的备份并运行此脚本:
ALTER TABLE user_activity_data
ADD FOREIGN KEY (article_id) REFERENCES Article(id);
一切正常:添加了外键。
我在原始机器(Debian GNU/Linux 8 (jessie))上运行相同的脚本,但脚本失败并显示错误消息:
errno: 150
两列的类型完全相同:int(11)
这怎么可能?这是一个备份,所以它是同一个数据库。确实,这是两个不同版本的 MySQL……但它们显然应该是兼容的。
这是脚本失败的 MySQL 版本:
+-----------------+
| 5.5.60-0+deb8u1 |
+-----------------+
以及它成功的版本:
+-----------+
| 5.7.22 |
+-----------+
【问题讨论】:
-
它们都可以是 int(11) 如果一个是“无符号”那么它们是不同的类型。检查两列是否已签名/未签名。
-
两者都没有签名。谢谢!
标签: mysql