溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

postgresql執(zhí)行存儲(chǔ)過程的方法

發(fā)布時(shí)間:2020-07-27 10:03:55 來源:億速云 閱讀:2388 作者:清晨 欄目:編程語言

不懂postgresql執(zhí)行存儲(chǔ)過程的方法?其實(shí)想解決這個(gè)問題也不難,下面讓小編帶著大家一起學(xué)習(xí)怎么去解決,希望大家閱讀完這篇文章后大所收獲。

PostgreSQL中可以使用多種過程語言實(shí)現(xiàn)用戶定義函數(shù)和存儲(chǔ)過程對數(shù)據(jù)庫功能進(jìn)行擴(kuò)展,這通常稱為存儲(chǔ)過程。

存儲(chǔ)過程一般用于創(chuàng)建觸發(fā)器或自定義聚合函數(shù)。另外存儲(chǔ)過程還有許多過程特性,例如控制結(jié)構(gòu)和復(fù)雜的計(jì)算。方便你更容易、更有效

地開發(fā)自定義函數(shù)。

如果沒有定義函數(shù)或存儲(chǔ)過程,也可以通過DO命令執(zhí)行過程代碼塊。

實(shí)現(xiàn)語言

PostgreSQL 中的過程語言主要分為兩組:

任何用戶可以使用的安全語言。如SQL和PL/pgSQL 是安全語言。

僅超級用戶使用的沙箱環(huán)境語言。因?yàn)樯诚湔Z言提供了繞過安全限制并允許訪問外部資源的能力。C語言是沙箱語言的一個(gè)例子。

PostgreSQL默認(rèn)支持三種過程語言: SQL, PL/pgSQL, C語言。我們也可以加載其他語言擴(kuò)展,如:Perl, Python, TCL等。

存儲(chǔ)過程優(yōu)勢

主要包括下列幾點(diǎn):

減少應(yīng)用和數(shù)據(jù)庫服務(wù)器之間的網(wǎng)絡(luò)傳輸。所有SQL語句被包裝在一個(gè)過程中,應(yīng)用程序緊緊發(fā)送一個(gè)函數(shù)調(diào)用命令即可得到執(zhí)行結(jié)果,

而不需要發(fā)送多次SQL語句,等待每次調(diào)用結(jié)果。

提升應(yīng)用性能。因?yàn)樽远x函數(shù)或過程是在PostgreSQL數(shù)據(jù)庫服務(wù)器中是預(yù)編譯的。

在多個(gè)應(yīng)用中可以重用。一旦開發(fā)了一個(gè)函數(shù),就可以在任何應(yīng)用中重復(fù)使用。

存儲(chǔ)過程劣勢

包括下面三點(diǎn):

開發(fā)效率不高。因?yàn)榇鎯?chǔ)過程編程需要特定技能,很多開發(fā)者沒有掌握。

代碼版本難以管理,其調(diào)試不方便。

對其他數(shù)據(jù)庫系統(tǒng)過程或函數(shù)程序不兼容。如Mysql、Microsoft SQL server等。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享postgresql執(zhí)行存儲(chǔ)過程的方法內(nèi)容對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細(xì)的解決方法等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI