表T1(C1,C2,C3),表T2(C1,C2,C3,c3,c4……)
触发器要求:
当对表T1新增一条记录时,调用触发器,将该记录插入T2;
当对表T1中的一条记录进行修改是,调用触发器,修改入T2中对应的记录;
当对表T1删除一条记录时,同时将T2中对应的记录也删除。
这样的触发器怎么写?
谢谢!
触发器要求:
当对表T1新增一条记录时,调用触发器,将该记录插入T2;
当对表T1中的一条记录进行修改是,调用触发器,修改入T2中对应的记录;
当对表T1删除一条记录时,同时将T2中对应的记录也删除。
这样的触发器怎么写?
谢谢!
after update or delete or insert
on t1
for each row
begin
if inserting then
insert into t2(C1,C2,C3) values(:new.C1,:new.C3,:new.C3);
elsif updating then
insert into t2(C1,C2,C3) values(:old.C1,:old.C3,:old.C3);
elsif deleting then
insert into t2(C1,C2,C3) values(:old.C1,:old.C3,:old.C3);
end if;
end;
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO T2 VALUES(:NEW.C1,:NEW.C2,:NEW.C3); ELSIF UPDATING THEN
UPDATE T2 SET T2.C1=:NEW.C1,T2.C2=:NEW.C2,T2.C3=:NEW.C3 WHERE T2.C1=:OLD.C1 AND T2.C2=:OLD.C2 AND T2.C3=:OLD.C3; ELSIF DELETING THEN
DELETE FROM T2 WHERE T2.C1=:NEW.C1;
END IF;
END;
建议T1,T2表用设C1为主键,然后再UPDATE和DELETE操作中使用主键对T1,T2表进行关联
after update or delete or insert
on t1
for each row
begin
if inserting then
insert into t2(C1,C2,C3) values(:new.C1,:new.C3,:new.C3);
elsif updating then
update t2 set c2:=old.c2,c3=:old.c3
where c1=:old.c1;
elsif deleting then
delete t2 where c1=:old.c1;
end if;
end;
测试后出现上面的错误
insert into t2(C1,C2) values(case when :new.C1 is '1' then 'True' else 'False' end,case when :new.C2 is 'a' then 'a' else 'b' end); 要实现这样的功能,该怎么写?