› Fóruns › SQL e PL/SQL › Dúvida trigger update › Dúvida trigger update
@luckzin
Seguinte seu código de exemplo segue um exemplo que funcionaria para o que deseja, porém fiquei em uma dúvida, esta tabela terá apenas um registro. A função da trigger sempre será um update sem where?
De qualquer forma segue abaixo:
create or replace
trigger teste
after update of sn
on testatrigger
begin
update testatrigger
set nome = sys_context('USERENV','SESSION_USER');
end;
/
Basta substituir o user pela função sys_context passando o parâmetro. Apenas uma observação que se tentar por exemplo utilizar where pelo sn onde terá que utilizar por exemplo:
referencing new as new old as old
for each row
Neste caso irá retornar o erro “ORA-04091: table name is mutating, trigger/function may not see it.”, para resolver este problema terá que utilizar:
declare
pragma autonomous_transaction;
Este irá fazer com que a trigger seja uma transação independente, porém utilize o commit ao final da trigger.