Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle - актуализира същата таблица, на която е задействан тригерът

Не е необходимо да актуализирате таблицата отново; можете да промените данните, преди да бъдат вмъкнати, с тригер на ниво преди вмъкване на ред, напр.:

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

Това използва new и old имена на корелация за да реши дали стойността на паролата е променена; и new име на корелация, за да присвоите системното време на полето в псевдозаписа, което става стойност на колона, когато вмъкването завърши.

Надяваме се, че не съхранявате пароли в обикновен текст във вашата таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CURSOR и REF CURSOR като JDBC тип данни

  2. Извикване на пакетна функция на Oracle с помощта на Odbc от C#

  3. Oracle SQL GROUP BY не е помощен израз за GROUP BY

  4. Коледа идва рано (Oracle 12.2)

  5. Защо OCI8/Oracle oci_bind_array_by_name на PHP не работи за мен?