› Fóruns › SQL e PL/SQL › $$$AJUUUUUUDA › $$$AJUUUUUUDA
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)