Du behöver inte uppdatera tabellen igen; du kan ändra data innan den infogas, med en radnivåutlösare före infogning, t.ex.:
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;
/
Detta använde new
och old
korrelationsnamn
för att avgöra om lösenordsvärdet har ändrats; och den new
korrelationsnamn för att tilldela systemtiden till fältet i pseudorecorden, som blir kolumnvärdet när infogningen är klar.
Förhoppningsvis lagrar du inte lösenord i vanlig text i din tabell.