參考:
語法
一個例子
創建一個文件/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...';