参考:
语法
一个例子
创建一个文件/tmp/t1.sql
DROP TABLE foo CASCADE;
CREATE TABLE foo (fooid INT, foosubid INT, fooname TEXT);
INSERT INTO foo VALUES (1, 2, 'three');
INSERT INTO foo VALUES (4, 5, 'six');
CREATE OR REPLACE FUNCTION get_all_foo() RETURNS SETOF foo AS
$BODY$
DECLARE
r foo%rowtype;
BEGIN
RAISE NOTICE 'test...';
FOR r IN
SELECT * FROM foo WHERE fooid > 0
LOOP
-- 这里可以做一些处理
RETURN NEXT r; -- 返回 SELECT 的当前行
END LOOP;
RETURN;
END
$BODY$
LANGUAGE plpgsql;
SELECT * FROM get_all_foo();
执行(登录到test数据库)
test=# \i /tmp/t1.sql
- 打印输出
RAISE NOTICE 'Refreshing materialized views...';