当test_currval 表中有数据插入进来的时候,需要在另一个表key_tmp中插入相应的数据,trigger如下,但好像一直不起作用,
但手工插入test_currval 没有问题,非手工的时候,key_tmp表中总是没有数据,请教高手怎么回事??谢谢!!create or replace trigger test
AFTER INSERT ON test_currval
for each row
declare
/*
*/
begin
IF INSERTING THEN
if :NEW.a_id = 'fixed_number'
then
insert into key_tmp
values
(:new.row_id,
:new.a_id,
:new.b_id,
1,
:new.begintime);
end if;
END IF;
end test;
但手工插入test_currval 没有问题,非手工的时候,key_tmp表中总是没有数据,请教高手怎么回事??谢谢!!create or replace trigger test
AFTER INSERT ON test_currval
for each row
declare
/*
*/
begin
IF INSERTING THEN
if :NEW.a_id = 'fixed_number'
then
insert into key_tmp
values
(:new.row_id,
:new.a_id,
:new.b_id,
1,
:new.begintime);
end if;
END IF;
end test;
-----这个条件是否符合??
改为 if Lower(:NEW.a_id) = 'fixed_number' then 试试
AFTER INSERT ON test_currval
for each row
declare
/*
*/
begin
IF INSERTING THEN
if :NEW.a_id = 'fixed_number' --先保证通过此条件
then
insert into key_tmp
values
(:new.row_id,
:new.a_id,
:new.b_id,
1,
:new.begintime);
Commit; -- 马上提交
end if;
END IF;
end test;
自己没有用过吧??
看一下是不是其他约束的问题?
非手工是因为,test_currval 表是一个业务当前表,几乎每分钟都有数据过来,当下一次新的数据过来后,原来的数据会插入到一个历史表中,
现在就是想每次有符合的数据过来一次,就在key_tmp 表中插入特定值