sql >> Database teknologi >  >> RDS >> Oracle

Oracle - opdater samme tabel som triggeren udløses på

Du behøver ikke at opdatere tabellen igen; du kan ændre dataene, før de indsættes, med en trigger på rækkeniveau før indsættelse, f.eks.:

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

Dette brugte new og old korrelationsnavne for at afgøre, om adgangskodeværdien er ændret; og den new korrelationsnavn for at tildele systemtiden til feltet i pseudorecorden, som bliver kolonneværdien, når indsættelsen er færdig.

Forhåbentlig gemmer du ikke almindelig tekst-adgangskoder i din tabel.



  1. SQL Sub-forespørgsler i check-begrænsning

  2. Hvordan forbinder man MySQL-database til C# WinForm Application?

  3. Finde duplikerede poster i en tabel

  4. Rækkestørrelsen er for stor fejl i mysql-opret tabelforespørgsel