【PostgreSQL】官网学习使用 PL/pgSQL编写造数据脚本
生活随笔
收集整理的這篇文章主要介紹了
【PostgreSQL】官网学习使用 PL/pgSQL编写造数据脚本
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 1. 前言
- 2. 成果
- 3. 創(chuàng)建與使用類似 Java map 的數(shù)據(jù)結(jié)構(gòu)
- 3.1 聲明數(shù)組
- 3.2 數(shù)組賦值
- 3.3 數(shù)組遍歷
- 4. 如何打印調(diào)試信息 (可以用來(lái)生成回滾語(yǔ)句)
- 5. 后記
1. 前言
前段時(shí)間需要大量造數(shù)據(jù),寫Java程序做造數(shù)據(jù)的活感覺(jué)太笨重了,遂下班后學(xué)習(xí)了 PL/pgSQL 寫腳本。公司用的是11.5的版本。按照 官網(wǎng)的Manual ,把下面的問(wèn)題搞清楚,就能實(shí)現(xiàn)大部分的需求了,有其他經(jīng)驗(yàn)的時(shí)候再來(lái)補(bǔ)充。
- 如何聲明、修改、刪除一個(gè)函數(shù)
- 如何在函數(shù)中聲明與使用局部變量
- 如何創(chuàng)建與使用類似 Java map 的數(shù)據(jù)結(jié)構(gòu)
- 如何使用循環(huán)等其他控制語(yǔ)句
- 如何打印調(diào)試信息 (可以用來(lái)生成回滾語(yǔ)句)
2. 成果
- 放個(gè)極簡(jiǎn)單的批量新增腳本
3. 創(chuàng)建與使用類似 Java map 的數(shù)據(jù)結(jié)構(gòu)
創(chuàng)建高級(jí)的數(shù)據(jù)結(jié)構(gòu)變量,官網(wǎng)這一塊是缺失的,遂使用二維數(shù)組來(lái)實(shí)現(xiàn)需求。
PS: 數(shù)組相關(guān)的內(nèi)容官網(wǎng)有很多,這里只記錄與實(shí)現(xiàn)需求有關(guān)的用法。
3.1 聲明數(shù)組
- 聲明的時(shí)候可以不額外區(qū)分一維、二維數(shù)組
_configList varchar[][] 和 _configList varchar[] 是一樣的
3.2 數(shù)組賦值
- 聲明為varchar后,賦值時(shí)也要是varchar類型。 _configList varchar[][] := (ARRAY[['ccontent1', '1'], ['content2', '2']]);
3.3 數(shù)組遍歷
- 二維數(shù)組的遍歷,官網(wǎng)提供語(yǔ)法:-- _configList 由外界傳入, 值得一提的是 FOREACH SLICE IN ARRAY 都是關(guān)鍵字 FOREACH _config SLICE 1 IN ARRAY (_configList) LOOP_content := _config[1];_amount := _config[2]; END LOOP;
4. 如何打印調(diào)試信息 (可以用來(lái)生成回滾語(yǔ)句)
官網(wǎng) Manual 講的足夠詳細(xì)了。這里有啟發(fā)的地方在于生成回滾語(yǔ)句。之前記錄過(guò) 一些小技巧。
5. 后記
后續(xù)看官網(wǎng)發(fā)現(xiàn) PostgreSQL 能夠直接集成 Python,集成后可以直接用Python的語(yǔ)法寫腳本。如:
CREATE FUNCTION pymax (a integer, b integer)RETURNS integer AS $$if a > b:return areturn b $$ LANGUAGE plpythonu;又多了個(gè)動(dòng)機(jī)學(xué)Python了~
總結(jié)
以上是生活随笔為你收集整理的【PostgreSQL】官网学习使用 PL/pgSQL编写造数据脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 识别图片转文字怎么弄?推荐两种实用工具
- 下一篇: 软件企业研发人员激励机制研究(转载)