sql 中外鍵是一種數(shù)據(jù)庫約束,確保子表記錄與主表相關(guān)記錄關(guān)聯(lián)。要設(shè)置外鍵,需要:1. 確定主表和子表;2. 選擇相應(yīng)列作為父列和子列;3. 使用 alter table 語句創(chuàng)建外鍵約束,指定子列、主表、父列以及附加選項(如果需要)。例如,alter table 訂單 add foreign key (產(chǎn)品 id) references 產(chǎn)品(產(chǎn)品 id) on delete cascade on update cascade。
SQL 數(shù)據(jù)庫中設(shè)置外鍵
1. 什么是外鍵?
外鍵是一種數(shù)據(jù)庫約束,它用于確保子表中的記錄與主表中的相關(guān)記錄具有關(guān)聯(lián)性。它本質(zhì)上將兩個表鏈接在一起,確保數(shù)據(jù)的完整性和一致性。
2. 如何設(shè)置外鍵?
在 SQL 中,使用 FOREIGN KEY 約束創(chuàng)建外鍵。以下步驟說明了如何:
確定主表和子表:確定包含父記錄的主表和包含子記錄的子表。
選擇相應(yīng)列:在主表中選擇用于創(chuàng)建外鍵的列(稱為父列),在子表中選擇與父列相關(guān)聯(lián)的列(稱為子列)。
創(chuàng)建外鍵約束:使用以下語法在子表中創(chuàng)建外鍵約束:
ALTER TABLE 子表 ADD FOREIGN KEY (子列) REFERENCES 主表(父列)
登錄后復(fù)制
3. 附加選項
以下附加選項可用于自定義外鍵約束:
ON DELETE [動作]:指定在從主表中刪除記錄時子表中相應(yīng)記錄的操作(例如,CASCADE、SET NULL、RESTRICT)。
ON UPDATE [動作]:指定在主表中更新記錄時子表中相應(yīng)記錄的操作(例如,CASCADE、SET NULL、RESTRICT)。
NOT NULL:確保子列的值不能為 NULL。
4. 示例
以下示例在子表 訂單 中創(chuàng)建一個外鍵約束,該約束引用主表 產(chǎn)品 中的 產(chǎn)品 ID 列:
ALTER TABLE 訂單 ADD FOREIGN KEY (產(chǎn)品 ID) REFERENCES 產(chǎn)品(產(chǎn)品 ID) ON DELETE CASCADE ON UPDATE CASCADE
登錄后復(fù)制
在這個示例中,產(chǎn)品 ID 列是主表 產(chǎn)品 中的父列,產(chǎn)品 ID 列是子表 訂單 中的子列。如果從 產(chǎn)品 表中刪除一條記錄,則會自動從 訂單 表中級聯(lián)刪除所有相關(guān)記錄。同樣,如果更新 產(chǎn)品 表中的 產(chǎn)品 ID 值,則 訂單 表中相關(guān)記錄的 產(chǎn)品 ID 值也會自動更新。