トリガーを使用して、テーブルで更新が実行されたときに少なくとも 1 つの値が変更されたかどうかを検出します。
関数 :
CREATE OR REPLACE FUNCTION update_version_column()
RETURNS trigger AS
$BODY$
BEGIN
IF row(NEW.*) IS DISTINCT FROM row(OLD.*) THEN
NEW.version = now();
RETURN NEW;
ELSE
RETURN OLD;
END IF;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION update_version_column()
OWNER TO gamesplateform;
問題は、列タイプが「json」の場合、「is distinct」が失敗したことです (ドキュメントで説明されている標準的なコンポートメント)。
同じことを実行する方法を検索しますが、列が「json」タイプの場合、比較演算子を受け入れる「jsonb」キャストを強制したいと思います。
これを行う方法はありますか?
ありがとう !