程序是一種與函式相似的資料庫物件。主要的差異是
程序使用 CREATE PROCEDURE
命令定義,而不是 CREATE FUNCTION
。
程序不傳回函式值;因此 CREATE PROCEDURE
缺少 RETURNS
子句。然而,程序可以透過輸出參數將資料傳回給呼叫者。
函式是在查詢或 DML 命令中呼叫,而程序是使用 CALL
命令獨立呼叫。
程序可以在執行期間提交或回滾交易(然後自動開始新的交易),只要呼叫的 CALL
命令不是明確交易區塊的一部分。函式不能這樣做。
某些函式屬性(例如 strictness)不適用於程序。這些屬性控制函式在查詢中的使用方式,與程序無關。
以下章節中關於如何定義使用者定義函式的說明也適用於程序,除了上述各點之外。
統稱而言,函式和程序也稱為常式(routines)。有些命令(例如 ALTER ROUTINE
和 DROP ROUTINE
)可以對函式和程序進行操作,而無需知道它是哪種類型。但請注意,沒有 CREATE ROUTINE
命令。
如果您在文件中發現任何不正確、與您特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。