好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Postgresql 存儲過程(plpgsql)兩層for循環的操作

Postgresql 存儲過程(plpgsql)兩層for循環的操作

熱門標簽:天津開發區地圖標注app 地圖標注要花多少錢 江蘇400電話辦理官方 移動外呼系統模擬題 廣州電銷機器人公司招聘 400電話申請客服 濟南外呼網絡電話線路 電銷機器人能補救房產中介嗎 電話機器人怎么換人工座席

項目中遇到測試,需要造4500數據,而且需要分部門和日期,一個部門一天30條數據,剩下的鋪墊數據可以一個部門一天100w左右數據,這里,每次變換部門,日期,需要操作至少300次,想到用存儲過程寫一個函數進行

首先,了解存儲過程的語法:

CREATE [ OR REPLACE ] FUNCTION
  name( [ [argmode] [argname]argtype[ { DEFAULT | = }default_expr] [, ...] ] )
    [ RETURNSrettype
     | RETURNS TABLE (column_namecolumn_type[, ...] ) ]
  { LANGUAGElang_name
    | WINDOW
| IMMUTABLE | STABLE | VOLATILE
    | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
    | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
    | COSTexecution_cost
    | ROWSresult_rows
    | SETconfiguration_parameter{ TOvalue| =value| FROM CURRENT }
    | AS 'definition'
    | AS 'obj_file', 'link_symbol'
  } ...
    [ WITH (attribute[, ...] ) ]
————————————————

CREATE [ OR REPLACE ] FUNCTION--創建一個函數,若有此函數,即取代重新創建 name -------函數名稱

RETURNS---函數返回類型

具體的函數聲明,請參考[postgresql存儲過程]

下面說我寫的函數:

CREATE OR REPLACE FUNCTION "xue"."insert_into_table"()
 RETURNS "pg_catalog"."void" AS $BODY$
DECLARE tmp VARCHAR(1024);
DECLARE n integer;
DECLARE i integer;
DECLARE inst_seq_no CURSOR FOR
  SELECT inst_seq_no FROM t where no in (
  '111','22','223','33','4358',
   '233','449','315','35335');
BEGIN
  RAISE NOTICE '------------start----------';
  i := 30;
  FOR stmt IN no LOOP
    n := 30;
    FOR n IN n..i LOOP    
      insert into test2 (NO,
      test_NO,TIME,USER_NO,SEQ_NO,
      NAME,USER_NO1,USER_NAME,CODE,USER_NO2,OPROR_NAME,
      REVIEW_TIME,DESC,
      VAL1,VAL2,DATE,UPD_TIME,DEL_FLAG) values
      (nextval('seq_test2'),n,'20190910',n,stmt.seq_no,n,n,n,n,n,n,'20190910','01','',n,n,'20190910',
      '20190909','0');
      END LOOP;
       n = n+30;
      i = i+30;
  END LOOP;
  RAISE NOTICE '-----------finished---------';
END;
$BODY$
 LANGUAGE plpgsql VOLATILE
 COST 100`

很簡單的邏輯,但是在修改了三四遍才實現,這個第二次寫存儲過程,很多語法不是很熟悉,要注意的如:

1.`變量聲明要用DECLARE

2.``游標 CURSOR 的用法

3.for循環要在begin中執行,

4.循環中要用“:=”

補充:Postgresql中存儲過程(函數)調用存儲過程(函數)時應用注意的問題

在postgresql中我們在執行存儲過程中往往會使用select 存儲過程,但是如果存儲過程中再調用 存儲過程時,就不能這樣用了,應該用perform 存儲過程,可以去參考官方文檔的說明

執行一個沒有結果的表達式或者命令

有時候我們希望計算一個表達式或者一個命令,但是卻丟棄其結果(通常因為我們經常調用一些存在有用的副作用但是不存在有用結果值的函數)。 要在 PL/pgSQL 里干這件事, 你可以使用PERFORM語句:

PERFORM query;

這條語句執行一個 query并且丟棄結果。 query 的寫法和你平常寫 SQL SELECT 命令是一樣的, 只是把開頭的關鍵字 SELECT 替換成 PERFORM。 PL/pgSQL 的變量和平常一樣代換到命令中。 同樣,如果命令生成至少一行,那么特殊的變量 FOUND 設置為真,如果沒有生成行,則為假。

注意: 我們可能希望沒有INTO子句的SELECT也能滿足這樣的需要, 但是目前可以接受的唯一的方法是PERFORM。

一個例子:

PERFORM create_mv('cs_session_page_requests_mv', my_query);

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

您可能感興趣的文章:
  • PGSQL 實現查詢今天,昨天的數據,一個月之內的數據
  • pgsql 變量賦值方法及注意事項
  • pgsql 實現分頁查詢方式
  • pgsql之create user與create role的區別介紹
  • pgsql之pg_stat_replication的使用詳解
  • pgsql 如何刪除仍有活動鏈接的數據庫
  • pgsql 解決包含有單引號的字符串操作

標簽:溫州 海西 寶雞 杭州 昭通 辛集 濮陽 榆林

巨人網絡通訊聲明:本文標題《Postgresql 存儲過程(plpgsql)兩層for循環的操作》,本文關鍵詞  Postgresql,存儲,過程,plpgsql,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Postgresql 存儲過程(plpgsql)兩層for循環的操作》相關的同類信息!
  • 本頁收集關于Postgresql 存儲過程(plpgsql)兩層for循環的操作的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 黄色片子在线观看| 国产日韩欧美亚洲青青草原| 四虎最新成人永久网站在线观看| а√天堂资源在线AV资源| 啊啊不要| 国产乱妇无码毛片A片在线看下载| 国产99久久九九精品的功能介绍| 91欧美精品激情在线观看| 公交车校花被猛烈进出小说| 精品乱码一区二区三四区网站| 女人张腿让男桶免费视频大全| 92影视| 好大灬好硬灬好爽灬无码视频 | 夜夜爽77777妓女免费看0| 欧洲艳妇电影| 综合图区亚洲| 太粗太长太硬受不了了| 国产精品w灬无码1688在线| jeyzo1754北岛玲| 欧美三级欧美一级| 美女胸又黄又???| 美女脱光全身衣服| 美女不穿衣服网站| 黑人gaysex巨大gay| 日本人hdxxxxvideo| 无码毛片一区二区三区免费看软件| 成人看片app| 久久久欧美精品sm网站| 国产秒拍福利| 嗯嗯啊啊啊视频| 欧美色爱综合网| 秋霞电影网伦大片| 特级太黄久久A片免费播放一网站| 国产高清1024永久免费| 男与女韩国| 艹逼网址| 波多野结衣在线AV一区| 影视在线播放| 嗯好深啊用力哦嗯啊| 老师您的兔子好软水好多直播| 欧美性bbbwbbbw|