Você não precisa atualizar a tabela novamente; você pode modificar os dados antes de serem inseridos, com um gatilho de nível de linha antes de inserir, por exemplo:
create trigger trig_pwd_date
before insert or update on temp_table
for each row
when (old.password is null and new.password is not null or new.password != old.password)
begin
:new.pwd_change_date := systimestamp;
end;
/
db<>demonstração do violino
Isso usou o
new
e old
nomes de correlação
para decidir se o valor da senha foi alterado; e o new
nome de correlação para atribuir a hora do sistema ao campo no pseudoregistro, que se torna o valor da coluna quando a inserção é concluída. Espero que você não esteja armazenando senhas de texto simples em sua tabela.