Mysql 在SQL中创建外键被认为是不兼容的,don';我不知道为什么
我正在尝试添加一个外键以将两个表链接在一起。他们已经有了主键,我不断收到这个错误的响应: 错误3780(HY000):引用列“empid”和引用列 外键约束“pqaemployeAddress_ibfk_1”中的“empid”为 不相容 我的父表是这个 这是我的孩子桌Mysql 在SQL中创建外键被认为是不兼容的,don';我不知道为什么,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,我正在尝试添加一个外键以将两个表链接在一起。他们已经有了主键,我不断收到这个错误的响应: 错误3780(HY000):引用列“empid”和引用列 外键约束“pqaemployeAddress_ibfk_1”中的“empid”为 不相容 我的父表是这个 这是我的孩子桌 两个主键都没有签名。我不确定它们为什么不兼容,也不确定如何链接我的表。任何帮助都将不胜感激 对不起,我解决了自己的问题,但我想我应该把答案贴出来 在制作我的一列时,我将其标记为“int”,但不是“int unsigned”,这
两个主键都没有签名。我不确定它们为什么不兼容,也不确定如何链接我的表。任何帮助都将不胜感激 对不起,我解决了自己的问题,但我想我应该把答案贴出来 在制作我的一列时,我将其标记为“int”,但不是“int unsigned”,这就是问题所在 所以,一旦我将其输入MySQL:
mysql> alter table pqaemployeeaddress modify column empid int unsigned;
Query OK, 6 rows affected (0.97 sec)
Records: 6 Duplicates: 0 Warnings: 0
它修复了它,这样我就可以添加外键了
mysql> alter table pqaemployeeaddress add foreign key (empid) references pqaemployeelist(empid);
Query OK, 6 rows affected (1.29 sec)
Records: 6 Duplicates: 0 Warnings: 0
就个人而言,有趣的检查方法是描述您的表,然后您可以看到您分配给它的类型。
能否将两个表的定义(列名和数据类型)添加到问题中,以及您使用的数据库和创建外键的命令?这是否回答了您的问题?非常感谢你,我把问题解决了。我的子表有一个我标记为“int”的列名,但忘了包含“int unsigned”,所以它不会链接。谢谢大家的快速回复@我只能在两天内接受我的回答。我试过:)