2007年10月30日 星期二

[資料庫] PostgreSQL如何使用cursor !

一般的 SELECT 使用 LIMIT 來限制取回 Data 的數量, 其餘的 Queries 均會回傳整個搜尋結果.
但當資料量龐大時回傳會造成本上升, 且可能導致 Client 的 RAM 耗盡. CURSOR 就在這情況被用來解決上述的問題.

$ psql bmdb bmuser
bmdb=> BEGIN;
bmdb=> DECLARE curs1 CURSOR FOR
bmdb-> SELECT * FROM bm_learning ORDER BY lid;
bmdb=> FETCH IN curs1; ---> 會回傳目前CURSOR所指的資料
bmdb=> fetch forward in curs1; --> 將CURSOR往前一筆, 並傳回目前CURSOR所指的資料
bmdb=> fetch backward in curs1; --> 將CURSOR往後一筆, 並傳回目前CURSOR所指的資料
bmdb=> COMMIT;

以上是即CURSOR簡單的應用 !

0 意見: