回答
Google是你的朋友。對於「常規的MySQL功能的過程」的第一個匹配是這樣的:http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
簡要總結:
甲存儲程序或者是一個過程或函數。
使用CALL語句調用過程,並且只能使用輸出變量傳回值。
函數可以像聲明中的其他函數一樣從一個語句中調用,並且可以返回一個標量值。 MySQL的功能和mysql程序
MYSQL功能之間
雖然我同意RTFM情緒。這個答案現在被谷歌用來顯示內聯結果。 – Realistic 2016-10-11 16:51:18
差異
它必須返回值。
IN
,OUT
和INOUT
不能在函數中使用。但 返回數據類型必須在創建函數時聲明。函數可以從SQL語句中調用 。函數返回一個值。
MYSQL程序
返回值不是強制性的,也可以是使用了OUT參數 程序返回。可以使用
IN
|OUT
|INOUT
參數。程序 不能從SQL語句中調用。程序通過使用OUT
或INOUT
參數返回多個 值。
這裏我試圖總結一下函數和程序之間的區別。
- 函數總是使用return語句返回一個值。 PROCEDURE可能通過參數返回一個或多個值,或者根本不返回任何值。
- 函數通常用於計算,其中程序通常用於執行業務邏輯。
- 函數僅返回1值。過程可以返回多個值(最大值1024)。
- 默認情況下,存儲過程總是返回零整數值。函數返回類型可以是標量或表或表值。
- 存儲過程有一個預編譯的執行計劃,其中函數不是。
- 可以通過SQL語句直接調用函數,如從雙重選擇func_name,而過程不能。
- 存儲過程具有安全性並減少了網絡流量,並且我們還可以調用任何沒有的存儲過程。的應用程序。
- 函數可以在SQL查詢中使用,而過程不能用在SQL查詢中。這會導致b/w函數和過程存在重大差異。
你的第四點不正確,請更正答案 – 2017-01-12 05:35:26
函數必須返回一個值,但是在存儲過程中它是可選的(過程可以返回零或n值)。 函數只能有輸入參數,而程序可以有輸入/輸出參數。 函數可以從程序中調用,而程序不能從函數調用。
- 1. 功能與新功能的JavaScript區別
- 2. .NET功能和C#功能有什麼區別? (請用例子)
- 3. 功能性,結構性和程序性編程有什麼區別?
- 4. Azure'功能應用程序'與2x功能與2x'功能應用程序'
- 5. 區別對象和功能
- 6. 程序與功能性Javascript
- 7. 使用功能區的應用程序
- 8. 自執行功能與IIFE的區別
- 9. GHCi與runhaskell的getLine功能區別
- 10. 代理功能與回撥的區別
- 11. F#管道和功能應用程序之間的神祕區別
- 12. WPF功能區 - 示例/開源應用程序
- 13. C和JAVA程序之間的區別
- 14. 程序和軟件的區別?
- 15. RPG副本和程序的區別
- 16. izpack 4.3.4程序和功能
- 17. 實例和對象之間的功能區別是什麼?
- 18. WPF棱鏡和功能區示例/教程
- 19. WPF應用程序功能區崩潰
- 20. 功能區帶引導程序
- 21. Kafka - DefaultPartitioner與MessageKey與自定義分區程序的區別?
- 22. PSQL程序功能無法識別列
- 23. 總和功能與分區
- 24. Sharepoint 2007和2010中功能的區別
- 25. 功能和方法的區別
- 26. 功能區示例
- 27. 虛擬功能與純虛擬功能的區別?
- 28. 應用程序域和應用程序池之間的區別?
- 29. 驅動程序和提供程序之間的區別
- 30. Web應用程序和應用程序之間的區別?
相關回答:[MySQL存儲過程vs函數](http://stackoverflow.com/questions/3744209/mysql-stored-procedure-vs-function-which-would-i-use-when/13510102#13510102) ,我找到了鏈接,而我正在改進我的答案,因此鏈接:) – 2013-06-15 14:57:28