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

Wyzwalacz mutacji Wyroczni

Jak wskazuje @San, wyzwalacz na poziomie wiersza na persons nie może generalnie odpytywać persons tabeli.

Potrzebujesz dwóch wyzwalaczy, wyzwalacza na poziomie wiersza, który może zobaczyć starą i nową płeć, oraz wyzwalacza na poziomie instrukcji, który może wykonać liczenie. Możesz również, jeśli używasz 11g, utworzyć wyzwalacz złożony z blokami na poziomie wiersza i instrukcji.

create or replace trigger trg_stmt
  after update
  on persons
declare
  l_cnt integer;
begin
  select count(*)
    into l_cnt
    from persons;

  dbms_output.put_line( 'There are now ' || l_cnt || ' rows.' );
end;

create or replace trigger trg_row
  after update
  on persons
  for each row
begin
  if( :new.gender != :old.gender )
  then
    dbms_output.put_line( 'Old gender = ' || :old.gender || ', new gender = ' || :new.gender );
  end if;
end;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wywołanie Oracle PL/SQL PLS-00201:należy zadeklarować identyfikator '001'

  2. Strategia poprawy wydajności Oracle DELETE

  3. Jak sprawdzić, czy ciąg formatu daty jest prawidłowym ciągiem formatu daty w Oracle?

  4. Jak skutecznie przekonwertować tekst na liczbę w Oracle PL/SQL przy użyciu innych niż domyślna wartości NLS_NUMERIC_CHARACTERS?

  5. Oracle Connect By