MySQL 外鍵約束:刪除孤立記錄
資料庫通常透過外鍵約束來維護表之間的關係。這些約束透過防止孤立記錄(引用其他表中不存在的資料的記錄)來確保資料完整性。在此背景下,我們探討如何在 MySQL 中實作外鍵級聯刪除。
範例場景
考慮下表:
category_id,product_id
categories_products 表創建了許多其他兩個表之間的一對多關係。現在,假設我們要刪除一個類別。如果對應的商品也與其他類別關聯,我們如何確保相應的商品不會被刪除?
實作連鎖刪除
FOREIGN KEY (category_id) REFERENCES categories (id) ON DELETE CASCADE
要實現期望的行為,我們需要使用 ON DELETE CASCADE 子句設定外鍵約束。在子表(categories_products)中定義foreign_key_id列時,我們可以指定該子句,如下所示:
該子句確保如果刪除某個類別,則categories_products表中所有對應的記錄也將被刪除已刪除。但是,級聯不會傳播到產品表,因為那裡沒有定義外鍵約束。
範例示範
產品表中的「靴子」和「手套」不受影響。
這樣,級聯刪除僅刪除相關的關聯記錄,從而確保資料完整性,防止孤立記錄並維護表之間的關係。以上是MySQL外鍵約束刪除資料時如何防止孤立記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!