Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle - zaktualizuj tę samą tabelę, na której uruchomiono wyzwalacz

Nie musisz ponownie aktualizować tabeli; możesz modyfikować dane przed ich wstawieniem, za pomocą wyzwalacza na poziomie wiersza przed wstawieniem, np.:

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<>demonstracja skrzypiec

Użyto new i old nazwy korelacji aby zdecydować, czy wartość hasła uległa zmianie; i new nazwa korelacji, aby przypisać czas systemowy do pola w pseudorekordu, które staje się wartością kolumny po zakończeniu wstawiania.

Mam nadzieję, że nie przechowujesz haseł w postaci zwykłego tekstu w swojej tabeli.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Powiązanie zmiennej z nazwą tabeli za pomocą cx_Oracle

  2. Historia impasów w Oracle?

  3. Symulacja długotrwałego zapytania do bazy danych Oracle

  4. Różnica dat w dacie w Oracle i Javie

  5. przekaż tablicę liczb całkowitych do procedury Oracle przez c#