我已经编写了一个 PL/PgSQL 触发器,我需要将查询(实际上是结果集)保存到变量中。 见下文:
DECLARE
__query record;
r record;
BEGIN
__query := (SELECT * FROM posts);
FOR r IN __query LOOP
-- do something with the row data
END LOOP;
RETURN NEW;
END;
我应该为查询本身使用哪种数据类型?
我猜 record
不是合适的数据类型,应该在循环周期本身中使用(对于 r var)。
最佳答案
如果您想将循环查询作为字符变量传递,那么您可以这样做:
DECLARE
_query : text;
r : record;
BEGIN
_query := 'SELECT * FROM posts';
FOR r IN EXECUTE _query LOOP
-- do stuff
END LOOP;
RETURN new;
END;
关于sql - 将 SQL 查询保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5716096/