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

PostgreSQL:トリガーの関数でNEWとOLDをチェックする

    トリガーがどのように起動されたかに応じてトリガー関数に異なることをさせる通常のアプローチは、 TG_OP

    CREATE OR REPLACE FUNCTION update_table_count()
    RETURNS trigger AS
    $$
    DECLARE 
      updatecount INT;
    BEGIN
      if tg_op = 'UPDATE' then 
        select count(*) into updatecount from source_table where id = new.id;
        update dest_table set count=updatecount where id = new.id;
      elsif tg_op = 'DELETE' then 
        ... do something else
      end if;
      RETURN NEW;
    END;
    $$
    LANGUAGE plpgsql;
    

    無関係ですが、言語名は識別子です。一重引用符を使用して引用しないでください。



    1. Oracleデータベースでの元に戻すとやり直しとは

    2. Oracle SQLテーブルへのRデータフレーム:メモリを割り当てることができませんでした

    3. SQL Server Management Studio(SSMS)で複数のクエリと結果を並べて表示する方法-SQL Server/TSQLチュートリアルパート14

    4. MySQLのDOBから年齢を取得