[英]How to make a foreach variable in plpgsql NEW or OLD
您可以進行如下操作:
foreach m slice 1 IN array NEW.*
loop
RAISE NOTICE 'var: %', m;
END LOOP;
要么,
FOR i IN NEW LOOP
RAISE NOTICE 'var: %', i;
END LOOP
NEW
和OLD
是觸發器函數中的特殊記錄變量 。 您不能像遍歷數組那樣遍歷它們。
遍歷(眾所周知的)記錄或行的列的一種方法:轉換為json
或jsonb
,然后:
CREATE OR REPLACE FUNCTION foo()
RETURNS trigger AS
$BODY$
DECLARE
js jsonb := to_jsonb(NEW);
col text;
BEGIN
FOR col IN SELECT * FROM jsonb_object_keys(js)
LOOP
RAISE NOTICE '%: %', col, js->>col;
END LOOP;
RETURN NEW;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.