SQL 主外來鍵

2021-04-19 22:55:55 字數 464 閱讀 5094

以下面三張表為例:

有三張表,一張表是讀者資訊,有乙個屬性為readno,一張表是圖書的資訊,有乙個屬性是bookno,一張表是借閱關係,有兩個屬性分別以讀者 資訊表中的readno,和圖書資訊表中的bookno為外來鍵,我想問的是,在借閱關係表中插入資料時不是得自己寫入readno和bookno嗎,這 樣,設外來鍵還有什麼作用?

答案:外來鍵取值規則:空值或參照的主鍵值。

(1)插入非空值時,如果主鍵表中沒有這個值,則不能插入。

(2)更新時,不能改為主鍵表中沒有的值。

(3)刪除主鍵表記錄時,你可以在建外鍵時選定外來鍵記錄一起級聯刪除還是拒絕刪除。

(4)更新主鍵記錄時,同樣有級聯更新和拒絕執行的選擇。

簡言之:

起約束作用,就是在借閱關係表中只能插入讀者/圖書資訊表中存在的值

不然會出錯.

作用在於如果你插入的readno或者bookno在兩個表中沒有,就會插不進去

SQL主外來鍵約束

主鍵 primary key 唯一標示乙個實體。是保證資料庫的實體完整性,保證資料中資料的正確性和合理性,取值非空 唯一。外來鍵 foreign 是用來使表與表之間聯絡。用來保證資料庫的參照完整性,外來鍵的取值必須來自參照表參照列的 值,可以為空也可不為空。1 外來鍵取值規則 空值或參照的主鍵值。2...

mysql建立主外來鍵關聯 mysql主外來鍵建立心得

mysql主主外來鍵建立 1 確保參照的表和字段是存在的 2 關聯表必須是innodb儲存型別 3 必須設定主關聯表主鍵 4 主鍵與外來鍵資料型別和字元編碼 unsigned 必須一致 5 確保以上宣告的句法是正確的 附 mysql建立表預設型別為 myisam 如果要改變預設表型別可在my.inf...

mysql主外來鍵

自己的 總提示 error 1005 can t create table errno 150 的錯誤鬱悶了好幾天,看了下面的文章終於成功了,犯了下面提到的三情況中的第三種,太不細心了,居然忽略了 unsigned 大家也要多留意呀!參照完整性 referentialintegrity 是資料庫設計...