在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;
请注意,使用级联删除时要谨慎,因为它可能导致大量数据被意外删除。在实际应用中,根据业务需求和数据完整性要求来决定是否使用级联删除。