Rei*_*ica 10 mysql foreign-keys
当我在MySQL中使用外键时,如果源值为0(因为没有ID为0的目标记录),我将收到错误.因此,我将源列更改为NULL,然后它可以工作.但是,我不确定这是否应该这样做.这是正确的方法,还是我能以某种方式将源ID设置为0而不是NULL?
Joe*_*oni 24
外键是约束.这意味着如果具有外键的列的值设置为任何值(并且"任何"不包括NULL),则该值必须存在于引用的表中,否则MySQL将引发错误.
因此,简而言之,您可以将值设置为NULL,删除外键约束并将值设置为您想要的任何值,包括0,或0在引用的表中添加带有a的记录.在这些选项中,设置值NULL似乎是最干净的.
是的,这是正确的方法。FK 的全部意义在于强制具有引用 ID 的记录实际存在。所以如果你把FK列设置为0,那么肯定有一个ID为0的记录。
解决此问题的唯一方法是使 FK 列可以为 NULL,就像您所做的那样。
无论如何,您为什么要将 FK 列设置为 0?SQL 中“不存在”的规范值为 NULL。