最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PostgreSQL存儲過程循環(huán)調(diào)用方式

 更新時間:2021年01月28日 08:41:18   作者:posse_w  
這篇文章主要介紹了PostgreSQL存儲過程循環(huán)調(diào)用方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

需求描述

碰到需求,需要往表里插入5萬條數(shù)據(jù), 打算使用存儲過程,但是postgres 數(shù)據(jù)庫沒有建存儲過程的SQL, 所以使用函數(shù)來實現(xiàn).

表數(shù)據(jù)結(jié)構(gòu)完整性要求一次插入兩條記錄, 兩條記錄相互外鍵約束, record1 的 partner_id 字段值是 record2 的主鍵id的值, record2 的 partner_id 字段值是 record1 的主鍵id的值.

實現(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ù)進行循環(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;

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 在windows下手動初始化PostgreSQL數(shù)據(jù)庫教程

    在windows下手動初始化PostgreSQL數(shù)據(jù)庫教程

    在windows下手動初始化PG,是一件比較麻煩的事,下面我具體寫一下過程,大家做一下參考。
    2014-09-09
  • postgresql 將逗號分隔的字符串轉(zhuǎn)為多行的實例

    postgresql 將逗號分隔的字符串轉(zhuǎn)為多行的實例

    這篇文章主要介紹了postgresql 將逗號分隔的字符串轉(zhuǎn)為多行的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • PostgreSQL使用MySQL外表的步驟詳解(mysql_fdw)

    PostgreSQL使用MySQL外表的步驟詳解(mysql_fdw)

    這篇文章主要介紹了PostgreSQL使用MySQL外表的步驟(mysql_fdw),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • CVE-2019-9193之PostgreSQL?任意命令執(zhí)行漏洞的問題

    CVE-2019-9193之PostgreSQL?任意命令執(zhí)行漏洞的問題

    這篇文章主要介紹了CVE-2019-9193:PostgreSQL?任意命令執(zhí)行漏洞,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • PostgreSql 的hash_code函數(shù)的用法說明

    PostgreSql 的hash_code函數(shù)的用法說明

    這篇文章主要介紹了PostgreSql 的hash_code函數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Linux 上 定時備份postgresql 數(shù)據(jù)庫的方法

    Linux 上 定時備份postgresql 數(shù)據(jù)庫的方法

    這篇文章主要介紹了Linux 上 定時備份postgresql 數(shù)據(jù)庫的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • PostgreSQL教程(三):表的繼承和分區(qū)表詳解

    PostgreSQL教程(三):表的繼承和分區(qū)表詳解

    這篇文章主要介紹了PostgreSQL教程(三):表的繼承和分區(qū)表詳解,本文講解了多表繼承、 繼承和權(quán)限、什么是分區(qū)表、分區(qū)表實現(xiàn)、分區(qū)和約束排除等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • PostgreSQL查看帶有綁定變量SQL的通用方法詳解

    PostgreSQL查看帶有綁定變量SQL的通用方法詳解

    今天我們要探討的是 custom執(zhí)行計劃和通用執(zhí)行計劃。這一技術(shù)在 Oracle中被稱為綁定變量窺視。但 Postgresql中并沒有這樣的定義,更嚴格地說,Postgresql叫做custom執(zhí)行計劃和通用執(zhí)行計劃
    2022-09-09
  • PostgreSQL出現(xiàn)死鎖該如何解決

    PostgreSQL出現(xiàn)死鎖該如何解決

    昨天在對一張表執(zhí)行一條update語句的時候,沒有修改成功,直接終止執(zhí)行,就瘋狂點擊執(zhí)行,執(zhí)行了很多次這條語句導(dǎo)致了表被死鎖了,這篇文章主要給大家介紹了關(guān)于PostgreSQL出現(xiàn)死鎖該如何解決的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • PostgreSQL 更新視圖腳本的注意事項說明

    PostgreSQL 更新視圖腳本的注意事項說明

    這篇文章主要介紹了PostgreSQL 更新視圖腳本的注意事項說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評論

仁寿县| 榕江县| 张北县| 班玛县| 德钦县| 兴海县| 那坡县| 都安| 巴彦淖尔市| 衡水市| 东丽区| 耿马| 浮山县| 深泽县| 蒙阴县| 旺苍县| 广宁县| 青阳县| 屯昌县| 大连市| 丹巴县| 永顺县| 吴堡县| 搜索| 金寨县| 元阳县| 定安县| 望江县| 嘉鱼县| 房山区| 渭南市| 宁津县| 新密市| 于田县| 长葛市| 孟连| 张家川| 宜丰县| 伊吾县| 抚宁县| 温州市|