postgresql存儲過程

參考:

語法

一個例子

創建一個文件/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...';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章