過程(Procedure)是一種與函式(Function)相似的資料庫物件。主要區別如下:
過程使用 CREATE PROCEDURE
命令定義,而不是 CREATE FUNCTION
。
過程不返回函式值;因此 CREATE PROCEDURE
缺少 RETURNS
子句。但是,過程可以透過輸出引數向呼叫者返回資料。而函式不能。
函式作為查詢或 DML 命令的一部分被呼叫,而過程則使用 CALL
命令獨立呼叫。
過程在其執行期間可以提交或回滾事務(然後自動開始一個新事務),前提是呼叫的 CALL
命令不包含在顯式事務塊中。函式則不能這樣做。
某些函式屬性(如 strictness)不適用於過程。這些屬性控制函式如何在查詢中使用,這與過程無關。
後續章節中關於如何定義使用者定義函式的解釋同樣適用於過程,但上面提到的幾點除外。
函式和過程統稱為“例程”(routines)。存在諸如 ALTER ROUTINE
和 DROP ROUTINE
之類的命令,它們可以對函式和過程進行操作,而無需知道它們是哪種型別。請注意,沒有 CREATE ROUTINE
命令。
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步說明的地方,請使用此表格報告文件問題。