資料庫外來鍵可以為空

2021-07-09 09:12:40 字數 922 閱讀 7754

一、

關於資料庫的外來鍵,以前我一直以為不允許為空的,今天看到乙個專案中使用了空的資料庫外來鍵,很驚訝,後來才發現是自己以前錯誤了。資料庫外來鍵是可以為空的。

不過為空的資料跟與之相關聯的表就沒有關係了。一般不採用。 二、

按照資料庫理論上說的應該是外來鍵可以為空,為空表示其值還沒有確定;如果不為空,剛必須為主鍵相同。舉個例子:有兩張表,系資訊表,學生資訊表,學生資訊表中的系號為外來鍵,此時外來鍵可以為空,表示該學生還沒有確定所在的系;如果系號不為空則系號必須在系資訊表中存在!

外來鍵不能為空只是sqlserver等一些資料庫系統的特殊規則而已! 三、

外來鍵可以為空的,乙個表的關鍵的標識是主鍵,外來鍵是否為空不影響表的結構及資料庫設計概念的.外來鍵只起個關聯表的作用.

至於書上提到的外來鍵不能為空是對的,但實踐中在資料庫裡沒有建立關聯時,好像是外來鍵,實則不是外來鍵.

雖然定義了關係

但是屬於未強制關係,這種關係的外來鍵約束被禁用。所以樓主定義無實際意義。所以可以插入null資料

外來鍵的值不允許參照相應主表中不存在的主鍵值,或者外來鍵為空值.

不知道樓主怎麼理解的這句話,我理解為外來鍵可以為空

外來鍵的值或者參照相應主表中存在的主鍵值,或者外來鍵為空值 四、

聯機叢書中準確的解釋是

如果在 foreign key 約束的列中輸入非 null值,則此值必須在被引用的列中存在,否則將返回違反外來鍵約束的錯誤資訊。

也就是說外來鍵中可以有null,除非外來鍵列定義了notnull 五、

外來鍵當然可以為空了

看看你引用的書上的話

"外來鍵的值不允許參照相應主表中不存在的主鍵值,或者外來鍵為空值. "

後面不是說了 "或者外來鍵為空值",不就是說外來鍵可以為空的嗎

外來鍵要有值的話必須是主表中存在的主鍵值,可不就是空值

外來鍵可以為空值,但如果有值的話一定是你參照的那個主表中的主鍵值.

外來鍵可以為空

一 關於資料庫的外來鍵,以前我一直以為不允許為空的,今天看到乙個專案中使用了空的資料庫外來鍵,很驚訝,後來才發現是自己以前錯誤了。資料庫外來鍵是可以為空的。不過為空的資料跟與之相關聯的表就沒有關係了。一般不採用。二 按照資料庫理論上說的應該是外來鍵可以為空,為空表示其值還沒有確定 如果不為空,剛必須...

外來鍵可以為空

一 關於資料庫的外來鍵,以前我一直以為不允許為空的,今天看到乙個專案中使用了空的資料庫外來鍵,很驚訝,後來才發現是自己以前錯誤了。資料庫外來鍵是可以為空的。不過為空的資料跟與之相關聯的表就沒有關係了。一般不採用。二 按照資料庫理論上說的應該是外來鍵可以為空,為空表示其值還沒有確定 如果不為空,剛必須...

資料庫 外來鍵

外來鍵是什麼?外來鍵 fk 是用於建立和加強兩個表資料之間的鏈結的一列或多列。通過將儲存表中主鍵值的一列或多列新增到另乙個表中,可建立兩個表之間的鏈結。這個列就成為第二個表的外來鍵。外來鍵資料庫一級的完整性約束,由資料庫自行維護.你也可以手動建立.1如果存在外來鍵關係的話,任何修改主表主鍵欄位和刪除...