sql >> データベース >  >> RDS >> Oracle

Oracle Mutating Trigger

    @Sanが指摘しているように、personsの行レベルのトリガー 通常、personsにクエリを実行することはできません テーブル。

    2つのトリガーが必要です。古い性別と新しい性別を確認できる行レベルのトリガーと、カウントを実行できるステートメントレベルのトリガーです。 11gを使用している場合は、行レベルとステートメントレベルの両方のブロックを使用して複合トリガーを作成することもできます。

    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. OracleDATEインデックス

    2. Doctrineconvert-mappingを実行するときにテーブルをスキップする

    3. mysqlのバイナリログエラー

    4. ファイルまたはアセンブリOracle.DataAccessをロードできませんでした