Я пытаюсь сделать триггер, который вставляет некоторые в столбец после инструкции insert. Например, у меня есть таблица с колонкой, которая выглядит:После вставки Trigger
Column1 Column2 Column3
И я вставляя данные в колонке 1, вставка в таблице (Column1) значения («256234», «234234»). Теперь я хотел бы автоматически вставить в COLUMN2 TIMESTAMP и в колонка3 Значение «Y», поэтому выход должен выглядит:
Column1 Column2 Column3
256234 2015-10-28 08:48 Y
234234 2015-10-28 08:48 Y
Ребята, не могли бы вы помочь мне с этим? Я пытался использовать курсор
Наконец я получил что-то вроде этого:
create or replace trigger name
after insert on table
declare
c1 sys_refcursor;
idx varchar2(200);
begin
open c1 for select Column1 from table ;
loop
fetch c1 into idx;
exit when c1%NOTFOUND;
update table a1 set a1.Column2 = (select to_char(sysdate,'YYYYMMDDHHMISS') from dual) where Column1=idx;
update table a1 set a1.Column3 = (select 'Y' from dual) where Column1=idx;
end loop;
close c1;
end;
Он отлично работает, но мне интересно, если есть какое-то другое лучшее решение, чем это?
Если вы вставляете в ту же таблицу, в которую вы вставляете, тогда вы можете использовать синтаксис ': new.columnName' – SomeJavaGuy