PostgreSQL擷取操作影響的行數

來源:互聯網
上載者:User

標籤:style   http   io   color   ar   os   sp   strong   資料   

如何來擷取普通的操作所影響的行數,PostgreSQL裡面有一個內建的變數DIAGNOSTICS與ROW_COUNT可以做到這一點。

一、環境:
DB:9.4beta3

二、準備:
postgres=# create table test(id int);CREATE TABLEpostgres=# insert into test select generate_series(1,20);INSERT 0 20postgres=# select * from test; id ----  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20(20 rows)
三、建立函數:
CREATE OR REPLACE FUNCTION fun_affect_rows()  RETURNS text AS$BODY$declarev_count int;begininsert into test values(99),(98);GET DIAGNOSTICS v_count = ROW_COUNT;raise notice ‘本次插入資料量 %‘, v_count;delete from test where id < 15;GET DIAGNOSTICS v_count = ROW_COUNT;raise notice ‘本次刪除資料量 %‘, v_count;update test set id = 100 where id >90;GET DIAGNOSTICS v_count = ROW_COUNT;raise notice ‘本次更新資料量 %‘, v_count;return ‘測試完畢‘;end;$BODY$  LANGUAGE plpgsql VOLATILE  COST 100;ALTER FUNCTION fun_affect_rows()  OWNER TO postgres;
四、運行情況:
postgres=# select * from fun_affect_rows();NOTICE:  本次插入資料量 2NOTICE:  本次刪除資料量 14NOTICE:  本次更新資料量 2 fun_affect_rows ----------------- 測試完畢(1 row)
如果要返回DML的結果,那就用returning就可以了

五、參考
http://www.postgresql.org/docs/9.0/static/plpgsql-statements.html

PostgreSQL擷取操作影響的行數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.