clwn.net
当前位置:首页 >> orAClE 触发器 insErt >>

orAClE 触发器 insErt

CREATE OR REPLACE TRIGGER 触发器名称 AFTER INSERT ON A FOR EACH ROW BEGIN INSERT INTO B (字段1,字段2,...,字段n) VALUES(:new.字段1,:new.字段2,...,:new.字段n); END 触发器名称; /

有两个触发器用到的记录类型 new 和 old insert的数据在new里 delete的在old里 他们里面的字段就是这一行里的记录 :new.a这样取出字段 这个字段是全局变量

CREATE OR REPLACE TRIGGER test_trg BEFORE INSERT OR DELETE ON TEST1 BEGIN CASE WHEN inserting THEN inser into test2 value :new; WHEN deleting THEN delete test2 where id=:old.id; END CASE; END;

CREATE OR REPLACE TRIGGER TRG_TEST_A BEFORE INSERT ON TEST_A FOR EACH ROW BEGIN IF INSERTING THEN :new.A := nvl(:new.B,0) * nvl(:new.C,0); END IF; END TRG_TEST_A;

新手路过···顺便写下··· create or replace trigger tri0 after insert or update on scott.FZR begin if :new.BM_ID! :old.BM_ID insert into BM(BM.BM_ID=FZR.BM_ID) values(:new.BM_ID); raise_application_error(-20005,'插入了新的记录'); ...

会不会是抛错的时候,数据库rollback了。 insert后面commit下试试。

变通啊,你会写insert那么update也可以啊,触发条件改啊

insert into A select * from 表XXX where 你指定的条件。 在你指定的条件里写符合你想要记录的条件。 create or replace trigger 触发器名 before insert on A for each row begin insert into A values(你自己写的值); end;

CREATE OR REPLACE TRIGGER TRG_aI AFTER INSERT ON a FOR EACH ROW BEGIN INSERT INTO b(x,x)VALUES(x,x)end;

不对,正确写法如下: CREATE OR REPLACE TRIGGER SMS_WORKFLOW AFTER INSERT ON WORKFLOW_FILEINBOX BEGIN INSERT INTO SMSENDTASK (flowid,useid) SELECT flow_id, user_id FROM inserted ; END SMS_WORKFLOW ;

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com