CRIAR TRIGGER QUE ATUALIZE TABELA
PRECISO DE AJUDA PARA FINALIZAR A TRIGGER ABAIXO.
PRECISO CRIAR UMA TRIGGER QUE ATUALIZE A TABELA ESTOQUE TODA VEZ QUE FOR DADO UM INSERT, DELETE OU UPDATE NA TABELA PRODUTOS.
FIZ COMO MOSTRA ABAIXO MAIS ESTA APRESENTANDO ERRO.
ALGUÉM PODE ME AJUDAR OU ME MOSTRAR UM JEITO MAIS FÁCIL DE FAZER??
CREATE TRIGGER ATUALIZA_PRODUTO_ESTOQUE ON PRODUTO
AFTER INSERT
AS
INSERT INTO ESTOQUE
SELECT COD_ESTOQUE, COD_PRODUTO, NOME_PRODUTO, QTDE_ESTOQUE,VALOR_UNITARIO FROM INSERTED
GO
insert into PRODUTO (COD_PRODUTO, STATUS, ESTOQUE_MINIMO, ESTOQUE_MAXIMO, QTDE);
values (8, 'teste', 'A', 1, 250);
update into PRODUTO (COD_PRODUTO, STATUS, ESTOQUE_MINIMO, ESTOQUE_MAXIMO, QTDE)
values (8, 'teste', 'I', 1, 150);
delete into PRODUTO (COD_PRODUTO, STATUS, ESTOQUE_MINIMO, ESTOQUE_MAXIMO, QTDE)
values (8, 'teste', 'I', 1, 150);
PRECISO CRIAR UMA TRIGGER QUE ATUALIZE A TABELA ESTOQUE TODA VEZ QUE FOR DADO UM INSERT, DELETE OU UPDATE NA TABELA PRODUTOS.
FIZ COMO MOSTRA ABAIXO MAIS ESTA APRESENTANDO ERRO.
ALGUÉM PODE ME AJUDAR OU ME MOSTRAR UM JEITO MAIS FÁCIL DE FAZER??
CREATE TRIGGER ATUALIZA_PRODUTO_ESTOQUE ON PRODUTO
AFTER INSERT
AS
INSERT INTO ESTOQUE
SELECT COD_ESTOQUE, COD_PRODUTO, NOME_PRODUTO, QTDE_ESTOQUE,VALOR_UNITARIO FROM INSERTED
GO
insert into PRODUTO (COD_PRODUTO, STATUS, ESTOQUE_MINIMO, ESTOQUE_MAXIMO, QTDE);
values (8, 'teste', 'A', 1, 250);
update into PRODUTO (COD_PRODUTO, STATUS, ESTOQUE_MINIMO, ESTOQUE_MAXIMO, QTDE)
values (8, 'teste', 'I', 1, 150);
delete into PRODUTO (COD_PRODUTO, STATUS, ESTOQUE_MINIMO, ESTOQUE_MAXIMO, QTDE)
values (8, 'teste', 'I', 1, 150);
Francielle Oliveira
Curtidas 0
Respostas
Kaio
11/10/2013
PODES FAZER ASSIM
CREATE OR REPLACE TRIGGER NOME_TRIGGER
BEFORE INSERT OF NOME_CAMPO ON TABELA_1
BEGIN
IF UPDATING THEN
insert into TABELA2 (Campo1, Campo2)
values (new.CampoA, new.CampoB);
END IF;
END NOME_TRIGGER;
onde
Campo1 e Campo2 são campos da TABELA2
CampoA e CampoB são campos da TABELA1
CREATE OR REPLACE TRIGGER NOME_TRIGGER
BEFORE INSERT OF NOME_CAMPO ON TABELA_1
BEGIN
IF UPDATING THEN
insert into TABELA2 (Campo1, Campo2)
values (new.CampoA, new.CampoB);
END IF;
END NOME_TRIGGER;
onde
Campo1 e Campo2 são campos da TABELA2
CampoA e CampoB são campos da TABELA1
GOSTEI 0
Deivison Melo
11/10/2013
Seria algo do tipo:
Qualquer dúvida estou à disposição
Abração e bons códigos!!
CREATE OR REPLACE TRIGGER ATUALIZA_PRODUTO_ESTOQUE
AFTER INSERT ON sua_tabela
REFERENCING
NEW AS NEW
OLD AS OLD
FOR EACH ROW -- aqui digo se é linha à linha
BEGIN
insert into PRODUTO (COD_PRODUTO, STATUS, ESTOQUE_MINIMO, ESTOQUE_MAXIMO, QTDE);
values (:NEW.COD_PRODUTO, :NEW.STATUS, :NEW.ESTOQUE_MINIMO, :NEW.ESTOQUE_MAXIMO, :NEW.QTDE);
END;
Qualquer dúvida estou à disposição
Abração e bons códigos!!
GOSTEI 0
Deivison Melo
11/10/2013
Problema resolvido, posso encerrar o tópico?
Abração e bons códigos!!
Abração e bons códigos!!
GOSTEI 0
Deivison Melo
11/10/2013
Estou encerrando tópico!
GOSTEI 0