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

postgresql-トリガー、フィールド更新時にタイムスタンプを更新

    トリガーを起動した行にのみ変更を加える限り、BEFORE UPDATEを使用する方がはるかに簡単(かつ安価)です。 トリガー。new.complete_flagに変更を加えることができます。 UPDATEを実行するのではなく、テーブルに保存する前に すでにそこにある後の声明。

    UPDATE OF <column>を使用して、トリガーを特定のフィールドの更新に制限することもできます。 CREATE TRIGGERの条項 ステートメント。

    最終結果は次のようになります:

    CREATE FUNCTION completed_timestamp() RETURNS trigger AS $$
       LANGUAGE plpgsql
    BEGIN
      IF new.complete_flag = 1 and old.completed_flag = 0 THEN
        new.complete_time := current_timestamp;
      END IF;
      RETURN new;
    END;
    $$;
    
    CREATE TRIGGER update_timestamp
    BEFORE UPDATE OF completed_flag ON tbl_pXXXX
    FOR EACH ROW 
    EXECUTE PROCEDURE completed_timestamp();
    



    1. テキストをVarcharに変換する

    2. EAVのデータモデリング

    3. Postgresデータベースを使用してJavaで非同期/イベント駆動型のLISTEN/NOTIFYサポートを取得するにはどうすればよいですか?

    4. Unicode文字は、データベースに挿入すると疑問符になります