mysql之外键操作_级联操作

-- 需求 修改员工表中的员工部门编号 将员工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;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值