Postgresql

在 PostgreSQL 中,“儲存過程”和其他類型的函式有什麼區別?

  • July 24, 2019

我理解以下之間的區別:

  • 標量函式
  • 設置返回函式 (SRF)
  • 內部功能
  • 視窗函式
  • 各種聚合函式
  • 使用者實現的函式(在 PostgreSQL 中可以用任何語言實現)
  • 等等。

在 SQL Server 中,“儲存過程”允許通過EXEC. SELECT與使用return執行的任何其他函式相比,它提供了什麼NULL

當 PostgreSQL 獲得儲存過程時,它們會給我帶來什麼,以及規範中函式和儲存過程之間的正式區別是什麼?

我讀了這個問題,但它似乎早於實施公告

由於 Postgres函式( CREATE FUNCTION)在(單個)事務上下文中執行,因此無法在函式體內執行幾個重要的命令。喜歡CREATE DATABASECREATE INDEX CONCURRENTLYVACUUM手冊:

VACUUM不能在事務塊內執行。

函式通常被稱為“儲存過程”,這一直是一個誤導性的術語——可能是從其他 RDBMS 繼承而來的。隨著SQL 過程( CREATE PROCEDURE) 在 Postgres 11 中的到來,應該完全避免用詞不當。

SQL 過程可以開始和結束事務。但是上面提到的命令根本不允許在任何事務塊中使用,因此這些命令也不能包含在 SQL 過程中(目前)。

為未來計劃了多個結果集,但尚未實施。

有關的:

引用自:https://dba.stackexchange.com/questions/194684