PostgreSQL 資料庫中的函數可以使用 SQL 或 PL/pgSQL(過程語言/PostgreSQL)實作。雖然兩種技術都能達到類似的結果,但選擇哪一種方法取決於問題的特定要求。
優點:
使用場景:
優點:
使用場景:
為了做出明智的決定,請考慮以下因素:
使用查詢中提供的範例:
<code class="language-sql">CREATE OR REPLACE FUNCTION f1(istr varchar) RETURNS text AS $$ SELECT 'hello! '::varchar || istr; $$ LANGUAGE SQL;</code>
<code class="language-sql">CREATE OR REPLACE FUNCTION f2(istr varchar) RETURNS text AS $$ BEGIN RETURN 'hello! '; -- 类型默认为 text END $$ LANGUAGE plpgsql;</code>
在本例中,兩個函數對輸入值「world」傳回相同的結果,但底層實作不同。 f1 使用簡單的 SQL 查詢,而 f2 使用 PL/pgSQL 的 BEGIN-END 區塊和隱含傳回。
以上是PostgreSQL 中的 SQL 與 PL/pgSQL:何時應該使用每種函數類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!