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