-- 需求 修改员工表中的员工部门编号 将员工id为8的部门编号更改掉5
-- 麻烦:由于存在外键约束,不能直接去改动从表,先将部门表主键id=4 更改成5,才能将从表id为8员工的部门id更改5
-- 级联操作(CASCADE)
-- 在声明的字段添加一个级联修改的操作ON UPDATE CASCADE-- 删除外键
ALTER TABLE employee DROP FOREIGN KEY dept_emp_fk;-- 添加外键的同时添加级联操作,添加级联删除
ALTER TABLE employee
ADD CONSTRAINT
dept_emp_fk FOREIGN KEY(dept_id)
REFERENCES dept(id)
ON UPDATE CASCADE -- 级联修改
ON DELETE CASCADE;-- 级联删除
-- 直接更改主表主键id--->从表的部门id也会随之改动
UPDATE dept SET id=5 WHERE id=4;-- 级联删除 ;on delete cacade
-- 正常的删除:要删除部门表的id为5的测试部,不能直接删除,因为现在员工表的id=2以及id=6的员工都关联这个部门
-- 先删除员工表中的id=2以及id=6,才能删除主表!-- 加入级联删除
-- 删除部门表中id为5的测试部
DELETE FROM dept WHERE id = 5 ;
SELECT *FROM dept;
SELECT*FROM employee;
mysql之外键操作_级联操作
最新推荐文章于 2024-05-13 18:34:00 发布