Oracle级联删除

--创建基表
CREATE TABLE zyl_test(CODE VARCHAR2(10),NAME VARCHAR2(20));
--创建外键关联表
CREATE TABLE zyl_test_fk(ID VARCHAR2(10),NAME VARCHAR2(20));

--方案一:创建外键时,添加ON DELETE CASCADE,级联删除
ALTER TABLE zyl_test_fk ADD CONSTRAINTS fk_test FOREIGN KEY(ID) REFERENCES zyl_test(CODE) ON DELETE CASCADE;

--方案二:创建触发器
ALTER TABLE zyl_test_fk ADD CONSTRAINTS fk_test FOREIGN KEY(ID) REFERENCES zyl_test(CODE);

--触发器
CREATE OR REPLACE TRIGGER DEL_OTHERS
  BEFORE DELETE ON ZYL_TEST
  FOR EACH ROW
BEGIN
  DELETE FROM ZYL_TEST_FK WHERE ID = :OLD.CODE;
END;

--初始化数据
INSERT INTO zyl_test VALUES('11','name');
INSERT INTO zyl_test_fk VALUES('11','name');
--查询数据
SELECT * from zyl_test;
SELECT * from zyl_test_fk;

--删除外键
ALTER TABLE zyl_test_fk DROP CONSTRAINTS  fk_test;
--删除触发器
DROP TRIGGER DEL_OTHERS;
--删除数据
DELETE FROM zyl_test WHERE CODE = '11';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值