在SQL中,級聯刪除(Cascade Delete)是指當從一個表中刪除一行數據時,與之關聯的其他表中的數據也會被自動刪除
以下是一個創建外鍵約束并設置級聯刪除的示例:
CREATE TABLE parent (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE child (
id INT PRIMARY KEY,
parent_id INT,
name VARCHAR(50),
FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE
);
在這個例子中,child
表有一個名為 parent_id
的外鍵列,它引用了 parent
表的主鍵。通過在外鍵約束上添加 ON DELETE CASCADE
選項,我們告訴數據庫在從 parent
表中刪除一行數據時,也要從 child
表中刪除所有與之關聯的行。
例如,如果我們從 parent
表中刪除一個ID為1的行,所有在 child
表中具有 parent_id
為1的行也將被自動刪除。
DELETE FROM parent WHERE id = 1;
請注意,使用級聯刪除時要謹慎,因為它可能導致大量數據被意外刪除。在實際應用中,根據業務需求和數據完整性要求來決定是否使用級聯刪除。