我要更新某人表的数据,但是该表引用了一个孩子记录,发现我正在寻找某个站点6小时,但我找不到解决方案,也从来没有孩子记录,请不要删除它。
答案 0 :(得分:1)
create table test1(
group_name varchar(20) primary key
);
create table test2(
seq number primary key,
group_name references test1(group_name)
);
commit;
insert into test1 values('test');
commit;
select * from test1;
insert into test2 values(1,'test');
select * from test2;
create trigger update_cascade
after update of group_name on test1
for each row
BEGIN
update test2
set group_name=:new.group_name
where group_name=:old.group_name;
END;
/
commit;
select * from test2;
update test1 set group_name='best' where group_name='test';
select * from test1;
select * from test2;
如果将停止
ALTER TRIGGER MEETNOW.update_cascade disable;
drop trigger update_cascade;
commit;
我希望像我这样的初学者会有所帮助。
答案 1 :(得分:0)
如果您希望在父表上进行的更改级联到子表,则必须在CASCADE
或{上将子表上的外键明确告知UPDATE
{1}}。像这样:
DELETE