2010-06-04 51 views
0

我有兩個表xyx有一個PK列,並且y具有表x的FK約束(具有空值)。我需要通過傳遞null值在表y中插入空值。這在NHibernate中可能嗎?如何在外鍵列中插入空值

我嘗試通過傳遞空值,但它給出了一個FK約束錯誤。

+1

數據庫中的列是否允許NULL?如果不是,則必須提供有效值。 – 2010-06-04 12:43:10

回答

-1

如果您想要了解如何執行所要求的問題的特定答案,則需要提供有關所用工具的更多信息。什麼數據庫系統?什麼編程語言?

但是我認爲你有比如何插入null更大的問題。即使它是FK,它仍然是一個關鍵。爲了參照完整性,應該有一個在另一個表中匹配的PK。這意味着必須要有一個空值的PK,這在某個好的數據庫設計中是不應該做的。如果可能的話,查看數據庫表的更好設計,而不需要使用空鍵。

+1

我不能評論德里克的答案,但它是錯誤的。你不會把一個空的FK放到一個人表中的一個移動臺上。您可以將移動表的FK添加到人員表中。如果移動桌中沒有與人物表中的PK相匹配的記錄,則該人沒有移動設備。所以我重複一遍。一個好的數據庫設計永遠不會有一個允許空值的關鍵字段PK或FK。 – 2010-06-04 13:14:18

0

如果一個人桌子有一個手機fm到一個電話桌,那麼如果該人沒有手機,那麼對於該手機字段是空的是非常有效的。無論您何時不需要插入帶有空主鍵的電話記錄。那將是無效的。

0

外鍵不能放在其他表的字段爲主鍵的位置。是可以分配場外默認值。