Mysql外键困境

时间:2011-09-24 22:28:01

标签: mysql database database-design foreign-keys

我在一个表上有一个列contactId,它是一个外键,连接到contacts表的id。即,我的第二个表中的每一行都可以连接到一个联系人。

但是,某些记录不必连接到任何联系人。在这种情况下,联系人ID将为0.当我尝试插入这样的记录时,我收到此错误:

Error Number: 1452 Cannot add or update a child row: a foreign key constraint fails 

我该怎么办?

2 个答案:

答案 0 :(得分:3)

如果具有FK到另一个表的列contactId可以为空(并且可以),那么您应该能够将那些没有任何联系人的列设置为NULL。外键基本上意味着如果列具有非NULL值,则该值必须存在于外键约束引用的表的主键中。否则,只需将其设置为NULL。

答案 1 :(得分:2)

当行引用一个concact时,使用NULL作为contactId

外键列可以为空。