更新,外键约束和空值

时间:2009-01-18 03:15:29

标签: mysql database oracle null foreign-keys

我在C#中生成数据模板。在这个精彩网站上的好人的帮助下,我成功地处理了几乎所有问题。这应该是最后一个问题。因为它是我正在研究的模板,所以我想要表中的每个字段,包括空值。通过添加(object)this.field,我得到了如何更新null的帮助。 DBNull.Value但我有一个外键的字段,即使我在数据库中查看它为null,当我拉记录时值变为0.当我尝试更新此字段时它表示我违反了外键限制。我该如何解决这个问题?我认为null解决方案可以工作,但它不显示为null,它显示为0.

由于

2 个答案:

答案 0 :(得分:0)

一般来说,允许FK为空并不是一个好主意。一些数据库(我知道oracle这样做)通过将FK绑定到主键而不是其他表中的列来强制执行此操作。你能不能重构你的表而不需要该列的空值?

答案 1 :(得分:0)

0是列的可能有效值吗?如果没有,只要在遇到一个时将其类型化为null。如果它是有效的,你仍然可以通过将其包装在一个检查外部行首先存在的条件中来实现。