在MySQL中添加外鍵可以幫助我們更好地維護數據完整性和匹配性。在添加外鍵時,我們還需要考慮一些情況,比如外鍵的刪除規則。
外鍵的刪除規則定義了當我們刪除外鍵父表中的一個記錄時,MySQL如何處理相關的子表記錄。在MySQL中,有四種可以使用的外鍵刪除規則:
CASCADE: 當我們在父表中刪除了一條記錄時,MySQL也將自動刪除相關的子表中所有關聯該記錄的行。 SET NULL: 當我們在父表中刪除一條記錄時,MySQL會將關聯該記錄的子表記錄的外鍵列設為NULL值。 NO ACTION: 當我們在父表中刪除一條記錄時,MySQL會禁止用戶執行刪除操作。 RESTRICT: 當我們在父表中刪除一條記錄時,如果與其關聯的子表中仍存在相關數據,則MySQL會禁止用戶執行刪除操作。
如何在MySQL中選擇外鍵刪除規則呢?
首先,我們需要使用ALTER TABLE語句來添加外鍵。如下所示的命令會在表table_1中創建一個指向表table_2的外鍵,并設置其刪除規則為CASCADE:
ALTER TABLE table_1
ADD CONSTRAINT fk_table_1
FOREIGN KEY (column_1) REFERENCES table_2 (column_2)
ON DELETE CASCADE;
如果我們想將刪除規則更改為SET NULL,可以使用下面的命令:
ALTER TABLE table_1
DROP FOREIGN KEY fk_table_1;
ALTER TABLE table_1
ADD CONSTRAINT fk_table_1
FOREIGN KEY (column_1) REFERENCES table_2 (column_2)
ON DELETE SET NULL;
通過使用這些命令,我們可以在MySQL中成功添加外鍵,并設置符合我們要求的刪除規則。