Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle - dieselbe Tabelle aktualisieren, auf der der Trigger ausgelöst wird

Sie müssen die Tabelle nicht erneut aktualisieren; Sie können die Daten ändern, bevor sie eingefügt werden, mit einem Trigger auf Zeilenebene vor dem Einfügen, z. B.:

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<>Fiddle-Demo

Dies verwendete den new und old Korrelationsnamen um zu entscheiden, ob sich der Passwortwert geändert hat; und der new Korrelationsname, um dem Feld im Pseudodatensatz die Systemzeit zuzuweisen, die zum Spaltenwert wird, wenn die Einfügung abgeschlossen ist.

Hoffentlich speichern Sie keine Klartext-Passwörter in Ihrer Tabelle.