oracleトリガ指定カラム更新トリガ

889 ワード

仕事中に時々トリガが使用される可能性があります.oracleトリガを使用して、あるテーブルのフィールドが変化したことを解決した後、ログを別のテーブルに記録し、タイマでログ情報を読み取り、redisにタイミングよく更新します.このプロジェクトのアーキテクチャについては後述します.次に、oracleトリガがカラム更新トリガを指定したことについて説明します.具体的なコードは次のとおりです.
CREATE OR REPLACE TRIGGER TRGSYNC_USER_TEST_AFTER
  after insert or update of USER_NAME,USER_PWD,TYPE or delete on USER_TEST
  for each row
begin
  if inserting then
    begin
       --       
    end;
  end if;
end TRGSYNC_USER_TEST_AFTER;
注意:これでさっき言った問題を解決できますが、ORACLEがBLOBタイプであればエラーが発生することがありますので、別の解決策を考えて、いくつかのフィールドを排除して操作を実行しません.具体的なコードは以下の通りです.
    if updating('REMARK') or updating('TEST1') 
        or updating('TEST2')  or updating('UPDATE_TIME')
        or updating('TEST3')   then
     return;
    end if;

これに加えて、これらのフィールドを除外すると、他のフィールドの変更がトリガーされ、解決に成功します.