簡體   English   中英

如何在新的或舊的plpgsql中制作foreach變量

[英]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

NEWOLD觸發器函數中的特殊記錄變量 您不能像遍歷數組那樣遍歷它們。

遍歷(眾所周知的)記錄或行的列的一種方法:轉換為jsonjsonb ,然后:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM