'custom_manual_edit'という名前のテーブルにカラム 'name'、 'builder'、 'flag'ユーザーがビルダー列の変更を更新したときにトリガーを作成しました。そのトリガーは、ビルダー値が変更されたレコードのフラグ列値を10に更新する関数を呼び出します。 以下は私のトリガーですテーブル内のプライマリキーカラムを持たない同じテーブル内の他のカラム変更に基づいてカラム値を更新する方法
CREATE TRIGGER builder_update_trigger_manual_custom_edits
AFTER UPDATE
ON edmonton.custom_manual_edit
FOR EACH ROW
WHEN (((old.builder)::text IS DISTINCT FROM (new.builder)::text))
EXECUTE PROCEDURE
edmonton.automated_builder_update_trigger_manual_custom_edits();
と私の機能
CREATE OR REPLACE FUNCTION
edmonton.automated_builder_update_trigger_manual_custom_edits()
RETURNS trigger AS
$BODY$
DECLARE
e record;
BEGIN
IF NEW.builder <> OLD.builder THEN
EXECUTE FORMAT('UPDATE edmonton.custom_manual_edit set builder_edit_flag = 10;
END IF;
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
これは、テーブルのフラグ列全体を10に更新するが、ビルダーの値が変更されたレコードのフラグ値を更新する方法を知っている。
どうもありがとう@krokodiiko –