案例 - 資料分頁

出自 ProgWiki
前往: 導覽搜尋

資料分頁的功能在 Web 應用程式常用到,只是為了簡化前端的程式碼,選擇了在 SQL 內部做分頁的處理,到底能提升多少效能也不敢保證。

PostgreSQL 資料分頁實作例子:

CREATE OR REPLACE FUNCTION mytable_list(ps bigint, page bigint)
  RETURNS SETOF mytable AS
$BODY$DECLARE
    rs mytable;
BEGIN
    FOR rs IN SELECT * FROM mytable LIMIT ps OFFSET ps*(page-1) LOOP
        RETURN NEXT rs;
    END LOOP;
END;$BODY$
 
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION mytable_list(ps bigint, page bigint) OWNER TO somebody;
引數說明: 
ps - 設定每一頁的資料列數量
page - 指定目前讀取的頁碼