MySQL:级联删除操作

级联删除操作(了解)

  

如果想实现删除主表数据的同时,也删除掉从表数据,可以使用级联删除操作

级联删除 
ON DELETE CASCADE 

 

代码示例:

删除 employee表,重新创建,添加级联删除

-- 重新创建添加级联操作
CREATE TABLE employee(
     eid INT PRIMARY KEY AUTO_INCREMENT,
     ename VARCHAR(20),
     age INT,
     dept_id INT, 
     CONSTRAINT emp_dept_fk FOREIGN KEY(dept_id) REFERENCES department(id),
     -- 添加级联删除
     ON DELETE CASCADE 
);

-- 添加数据
INSERT INTO employee (ename, age, dept_id) VALUES ('张百万', 20, 1); 
INSERT INTO employee (ename, age, dept_id) VALUES ('赵四', 21, 1); 
INSERT INTO employee (ename, age, dept_id) VALUES ('广坤', 20, 1);
INSERT INTO employee (ename, age, dept_id) VALUES ('小斌', 20, 2); 
INSERT INTO employee (ename, age, dept_id) VALUES ('艳秋', 22, 2); 
INSERT INTO employee (ename, age, dept_id) VALUES ('大玲子', 18, 2); 

-- 删除部门编号为2 的记录 
DELETE FROM department WHERE id = 2;

 

运行效果:

员工表中 外键值是2的记录,也被删除了

 

posted @ 2021-07-15 16:43  Jasper2003  阅读(1176)  评论(0编辑  收藏  举报