Pular para o conteúdo

Fóruns SQL e PL/SQL $$$AJUUUUUUDA $$$AJUUUUUUDA

#92209
burga
Participante

    Primeiramente bem-vindo ao fórum willmga,

    Bom, quanto ao conceito de trigger, nada mais é do que um bloco de comandos a ser executado antes ou depois (BEFORE/AFTER) da ocorrência de um determinado evento no banco de dados (insert, update, delete, logon, servererror, …).

    No seu caso você deverá criar a trigger que inicia nos eventos de insert e update da coluna ST_LOCACAO da tabela MOVLOC. Então acertando o código do VitorLeandro ficaria assim:

    CREATE OR REPLACE TRIGGER ATUALIZA_MIDIA
    BEFORE INSERT OR UPDATE
    OF ST_LOCACAO ON MOVLOC
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW

    BEGIN
    .
    . [bloco de comandos]
    .
    END ATUALIZA_MIDIA;

    E ainda, existe outra maneira que você pode alterar o valor da coluna sem utilizar o comando UPDATE, que neste caso provavelmente ocasionará em uma exceção de “tabela mutante”. Isto você poderá fazer utilizando o :NEW.ST_MIDIA recebendo diretamente o valor necessário. Exemplo:

    :NEW.ST_MIDIA := 'L';

    O resto fica pra você se virar e estudar… 8)