https://www.toutiao.com/article/7194316891589132832/?log_from=4863912c9a6f18_1675149768866 用postgresql而不用plpython3u,,和mysql有什么分別,? 一,、什么是plpython3u?plpython3u 是postgresql的一個(gè)擴(kuò)展,,打開navicate,,連入數(shù)據(jù)庫(kù),執(zhí)行 create extension plpython3u; (如果服務(wù)器山?jīng)]安裝模塊,,則失敗,,下文會(huì)講如何安裝) 然后 select * from pg_extension ,可以看到plppython3u 是PG 的一個(gè)插件,。 plpython3u 是一門數(shù)據(jù)庫(kù)編程語(yǔ)言,。 熟悉oracle和sqllserver的可能知道plsql 和TSQL,那是數(shù)據(jù)庫(kù)自己的原生編程語(yǔ)言,。PG也有自己的原生編程語(yǔ)言,,叫做plpgsql。但和所有原生編程語(yǔ)言一樣,,總是沒有python這種通用型語(yǔ)言靈活和功能強(qiáng)大,。 借助plpython3u,我們可以賦予數(shù)據(jù)庫(kù)強(qiáng)大的附加能力 案例一,,sql增強(qiáng): 我們需要根據(jù)企業(yè)的注冊(cè)資金來給企業(yè)分類,。
也許簡(jiǎn)單的規(guī)則可以借助sql語(yǔ)言本身的能力實(shí)現(xiàn),,但規(guī)則一旦復(fù)雜后,就比較困難,。 借用plpython3u寫一個(gè)自定義函數(shù),,可以把復(fù)雜的規(guī)則封裝。
plpython3u 還可以實(shí)現(xiàn)sql腳本化,、數(shù)據(jù)分析,、辦公、機(jī)器學(xué)習(xí)等等,。(更多應(yīng)用案例,,下文會(huì)詳細(xì)列舉) 二、plpython3u 的安裝,。談到plpython3u的安裝,,則需要考慮到讀者使用PG的發(fā)行版、安裝方式和操作系統(tǒng),。 此處列舉最常見的幾種場(chǎng)景
創(chuàng)建plpython3u,,需要數(shù)據(jù)庫(kù)安裝plpython3u模塊,,plpython3u模塊工作需要調(diào)用服務(wù)器上的python程序。所以保證plpython3u安裝且成功工作,,需要保證
2.1 window 數(shù)據(jù)庫(kù)通過 該發(fā)行版,,自身已經(jīng)安裝plpython3u模塊,證據(jù)就是存在
此發(fā)行版,依賴于window上安裝 python3.7 ,,且必須把python安裝目錄加到環(huán)境變量PATH里去,, (確切的說,是 ” 安裝目錄/python37.dll“ 這個(gè)文件 必須在環(huán)境變量里,。 也就是說,,你把這個(gè)文件的快捷方式放到環(huán)境變量里的目錄也是可以的,這樣就不用把整個(gè)安裝目錄必須放到環(huán)境變量下,。) 可以通過python命令,檢查一下安裝python安裝目錄是否在環(huán)境變量path里 不同版本的發(fā)行版依賴不同的python版本,,enterprisedb-window.exe系列有以下
該規(guī)則不適用其它發(fā)行版,。 2.2 centos7 數(shù)據(jù)庫(kù)通過yum或 rpm安裝 (yum install postgresql13-server) 此發(fā)行版自身并不帶plpython3u模塊。需要額外安裝 可以通過yum安裝
若無法搜索到,,則需要安裝 pg官方repo
或者,,直接下載對(duì)應(yīng)的plpython3u rpm文件手段安裝 下載頁(yè)面
安裝成功后,,數(shù)據(jù)庫(kù)目錄下會(huì)有
用此方式安裝的PG,依賴于python3.6 保證系統(tǒng)中有python3.6 且在環(huán)境PATH里即可,。 2.3 linux 通過 通過這種方式安裝的,,目錄在/opt/PostgreSQL/10,且已經(jīng)安裝好了plpython3u 模塊,。 此版本依賴python3.4
難道一個(gè)PG發(fā)行版就只能綁定一個(gè)特定python版本,?如果我希望自己的PG和自己喜歡的python版本組合使用,難道就沒有辦法,? 下篇,,將介紹如何自由實(shí)現(xiàn) PG-plpython3u 和任意版本python適配 |
|