【问题标题】:Creating Foreign Key in SQL is being deemed incompatible, don't know why在 SQL 中创建外键被认为不兼容,不知道为什么
【发布时间】:2020-01-22 14:55:45
【问题描述】:

我正在尝试添加一个外键来将我的两个表链接在一起。他们已经有主键,我不断收到此错误作为响应:

ERROR 3780 (HY000): 引用列 'empid' 和引用列 外键约束“pqaemployeeaddress_ibfk_1”中的“empid”是 不兼容。

我的父表是这个

我的子表是这个

两个主键都是无符号的。我不确定它们为什么不兼容,也不确定如何链接我的表。任何帮助将不胜感激!

【问题讨论】:

  • 您能否将两个表的定义(列名和数据类型)以及您正在使用的数据库以及您正在运行的创建外键的命令添加到问题中?
  • 这能回答你的问题吗? SQL error - Cannot add foreign key constraint
  • 非常感谢,我找到了问题所在。我的子表有一个列名,我标记为“int” - 但忘记包含“int unsigned”,因此它不会链接。谢谢大家的超快回复!
  • @Chris94 我只能在两天内接受我的回答。我试过:)

标签: mysql sql foreign-keys


【解决方案1】:

对不起,我解决了自己的问题,但我想我应该发布答案。

在制作我的一个专栏时,我将其标记为“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

就个人而言,有趣的检查方法是描述您的表,然后您可以看到您为其分配了哪些类型。 Image of Describe key word!

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多