sql >> Database >  >> RDS >> Oracle

Oracle muterende trigger

Zoals @San aangeeft, een trigger op rijniveau op persons kan over het algemeen niet de persons ondervragen tafel.

Je hebt twee triggers nodig, een trigger op rijniveau die het oude en nieuwe geslacht kan zien en een trigger op statementniveau die de telling kan doen. U kunt ook, als u 11g gebruikt, een samengestelde trigger maken met blokken op rij- en instructieniveau.

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. MOD() Functie in Oracle

  2. MySQL Cross Server Select Query

  3. SQL Server:hoe kan ik meerdere rijwaarden in afzonderlijke kolommen groeperen?

  4. Hoe een record invoegen en de nieuw gemaakte ID retourneren met een enkele SqlCommand?