0
その行の特定の列が非NULLデータで更新されると行が更新されないようにする制約を設定する必要があります。Postgres - 行の列がnullでない場合に行の更新を停止する方法
その行の特定の列が非NULLデータで更新されると行が更新されないようにする制約を設定する必要があります。Postgres - 行の列がnullでない場合に行の更新を停止する方法
はそれがない場合は、列がすでに移入された場合はNULLを返し、トリガー、または新しいオブジェクトを置くあなたのUPDATEで
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE column1 is not NULL;
をWHERE句を使用します。
CREATE OR REPLACE FUNCTION public.safeguard_tg_fn() RETURNS trigger AS
$BODY$BEGIN
--If the column was not set, allow updating the entire row
IF OLD.myimportantcol ISNULL THEN
RETURN NEW;
ELSE
--Else, the column is already populated, cancel the entire update (for this row only)
RETURN NULL;
END IF;
END;$BODY$ LANGUAGE plpgsql;
CREATE TRIGGER safeguard_tg BEFORE UPDATE
ON public.mytable FOR EACH ROW
EXECUTE PROCEDURE public.safeguard_tg_fn();