Duvida na criação de Trigger
Boa tarde a todos, estou iniciando na criação de trigger, preciso criar uma trigger que quando for inserido um novo pedido ela seja acionada pegue algumas informações e grave em outra tabela, eu estou tentando fazer desta forma:
CREATE OR REPLACE TRIGGER <nome_trigger>
BEFORE INSERT OR UPDATE ON tabela1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
INSERT INTO tabela2
(t2.campo_1, t2.campo_2, t2.campo_3, t2.campo_4, t2.campo_5, t2.campo_6, t2.campo_7, t2.campo_8)
SELECT
:NEW.t1.campo_1, :NEW.t1.campo_2, :NEW.t1.campo_3,'FRETE TESTE', (:NEW.t1.campo_4* 1.05), 0, null, null
FROM tabela1;
END;
CREATE OR REPLACE TRIGGER <nome_trigger>
BEFORE INSERT OR UPDATE ON tabela1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
INSERT INTO tabela2
(t2.campo_1, t2.campo_2, t2.campo_3, t2.campo_4, t2.campo_5, t2.campo_6, t2.campo_7, t2.campo_8)
SELECT
:NEW.t1.campo_1, :NEW.t1.campo_2, :NEW.t1.campo_3,'FRETE TESTE', (:NEW.t1.campo_4* 1.05), 0, null, null
FROM tabela1;
END;
Raul Costa
Curtidas 0
Respostas
João Françozo
20/07/2015
Boa tarde Raul,
O Begin vem antes do for each row.
---------------------------------------------------------
Segue abaixo.
CREATE OR REPLACE TRIGGER <nome_trigger>
BEFORE INSERT OR UPDATE ON tabela1
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
FOR EACH ROW
INSERT INTO tabela2
(t2.campo_1, t2.campo_2, t2.campo_3, t2.campo_4, t2.campo_5, t2.campo_6, t2.campo_7, t2.campo_8)
SELECT
:NEW.t1.campo_1, :NEW.t1.campo_2, :NEW.t1.campo_3,''FRETE TESTE'', (:NEW.t1.campo_4* 1.05), 0, null, null
FROM tabela1;
END;
O Begin vem antes do for each row.
---------------------------------------------------------
Segue abaixo.
CREATE OR REPLACE TRIGGER <nome_trigger>
BEFORE INSERT OR UPDATE ON tabela1
REFERENCING NEW AS NEW OLD AS OLD
BEGIN
FOR EACH ROW
INSERT INTO tabela2
(t2.campo_1, t2.campo_2, t2.campo_3, t2.campo_4, t2.campo_5, t2.campo_6, t2.campo_7, t2.campo_8)
SELECT
:NEW.t1.campo_1, :NEW.t1.campo_2, :NEW.t1.campo_3,''FRETE TESTE'', (:NEW.t1.campo_4* 1.05), 0, null, null
FROM tabela1;
END;
GOSTEI 0