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 触发器名称; /

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

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

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

亲下面就是触发器 你可以往里面套用 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 触发器名称; /

一个完整的例子, 仅供参考: SQL> CREATE SEQUENCE test_sequence2 2 increment by 1 -- 每次递增1 3 start with 1 -- 从1开始 4 nomaxvalue -- 没有最大值 5 minvalue 1 -- 最小值=1 6 NOCYCLE; -- 不循环 Sequence created. SQL> CREATE TABLE ...

-- 是这样吗,希望对你有所帮助declare cou integer;begin select count(*) from 表1 where 列1 = 值1; if cou = 0 then insert into 表1(列1,列2) values (值1,值2); else update 表1 set 列2 = 值2 where 列1 = 值1; end if;end;

if语句需要逻辑判断真假吧。 只有after intsert 或者instead of insert这种。。

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 trig_name after insert or update on tab1 referencing old as old new as new for each row begin if inserting then --insert 时处理 end if; if updating then --update时处理 end if; end; /

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