真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在PostgreSQL中循環(huán)調(diào)用存儲過程-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)如何在PostgreSQL中循環(huán)調(diào)用存儲過程,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),鎮(zhèn)平企業(yè)網(wǎng)站建設(shè),鎮(zhèn)平品牌網(wǎng)站建設(shè),網(wǎng)站定制,鎮(zhèn)平網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,鎮(zhèn)平網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

實現(xiàn)

create
 or replace function creatData() returns boolean as $BODY$
declare ii integer;
declare id1 integer;
declare id2 integer;
begin
 ii = 1;
 id1 = nextval('seq_table');
 id2 = nextval('seq_table');
FOR ii IN 1..50000 LOOP
insert
 into
 table1
 values(
 id1,
 10,
 10250,
 5001,
 '2017-08-07 14:00:00',
 '2017-08-07 15:00:00',
 id2,
 true,
 864,
 16950,
 0,
 0,
 0,
 null,
 20,
 null,
 18050,
 '2017-08-07 13:55:08',
 18051,
 '2017-08-07 13:57:28',
 false,
 401,
 10,
 null,
 null,
 null,
 'DA-HZ001000003',
 '2017-08-07 13:54:08',
 '2017-08-07 13:57:28',
 10251
 );
insert
 into
 table1
 values(
 id2,
 10,
 10251,
 5001,
 '2017-08-07 14:00:00',
 '2017-08-07 15:00:00',
 id1,
 true,
 864,
 16950,
 0,
 0,
 0,
 null,
 20,
 null,
 18050,
 '2017-08-07 13:55:08',
 18051,
 '2017-08-07 13:57:28',
 false,
 401,
 10,
 null,
 null,
 null,
 'DA-HZ001000003',
 '2017-08-07 13:54:08',
 '2017-08-07 13:57:28',
 10250
);
end LOOP;
return true;
end;
$BODY$ LANGUAGE plpgsql;

問題

這樣子插入只能插入一次, 因為取得序列值的地方在for循環(huán)的外面, id的值不會隨著循環(huán)再賦值, 主鍵沖突.

辦法

想到可以再對函數(shù)進(jìn)行循環(huán), 于是再寫一個函數(shù)循環(huán)執(zhí)行上一個函數(shù), 去掉上個函數(shù)中的for 循環(huán)語句FOR i IN 1..500000 LOOP 和 end LOOP;

再寫一個下面函數(shù)循環(huán)執(zhí)行函數(shù)1

create or replace function loopCreate() 
returns void as 
$BODY$
 begin for i in 1..50000 LOOP 
 PERFORM creatData();
 end LOOP;
end;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

執(zhí)行函數(shù)

select * from loopCreate() as tab;

好了,完成,10萬條數(shù)數(shù)據(jù)秒插, 2.1秒.

PS:CSDN的markdown編輯器真的很難用, 文字稍微長一點就卡, 而且換行經(jīng)常自動調(diào)跳回上一行, 無奈, 現(xiàn)在都是直接在別的地方寫好粘貼回來…

補充:postgresql 存儲過程中遍歷的一個小問題

問題

想實現(xiàn)這種功能,就是 for r in 后面的sql語句是一個變量,要把以下代碼修改一下

"sqltext" = 'select "ID","ZONENAME" from "ZONE_INFO" where "ID"<>0';
 for r in "sqltext"
loop 
return next r; 
end loop;

解決方法:

sqltext = 'select "ID","ZONENAME" from "ZONE_INFO" where "ID" <>0';
for r in execute sqltext
loop
 return next r;
end loop;

看完上述內(nèi)容,你們對如何在PostgreSQL中循環(huán)調(diào)用存儲過程有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


分享題目:如何在PostgreSQL中循環(huán)調(diào)用存儲過程-創(chuàng)新互聯(lián)
文章路徑:http://weahome.cn/article/cejshs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部