首頁 >常見問題 >預存程序和函數有什麼區別

預存程序和函數有什麼區別

藏色散人
藏色散人原創
2020-11-26 11:06:2742898瀏覽

預存程序和函數的差異要有:1、預存程序是SQL語句和可選控制流語句的預編譯集合,而函數是由一個或多個SQL 語句組成的子程序;2、預存程序可以在單一預存程序中執行一系列SQL語句,而自訂函數有諸多限制;3、執行方式不同。

預存程序和函數有什麼區別

預存程序與函數差異

#一、意義不同

##1、預存程序:預存程序是SQL 語句和可選控制流語句的預編譯集合,以一個名稱儲存並作為一個單元處理。

2、函數:是由一個或多個 SQL 語句組成的子程序,可用來封裝程式碼以便重新使用。函數限制比較多,如不能用臨時表,只能用表變數等

二、使用條件不同

1、預存程序:可以在單一預存程序中執行一系列SQL 語句。而且可以從自己的預存程序內引用其它預存程序,這可以簡化一系列複雜語句。

2、函數:自訂函數諸多限制,有許多語句不能使用,許多功能不能實現。函數可以直接引用回傳值,用表變數傳回記錄集。但是,使用者定義函數不能用來執行一組修改全域資料庫狀態的操作。

預存程序和函數有什麼區別

三、執行方式不同

1、預存程序:預存程序可以傳回參數,如記錄集,函數只能傳回值或表格物件。預存程序的參數有in,out,inout三種,在預存程序聲明時不需要傳回型別。

2、函數:函數參數只有in,而函數需要描述回傳類型,函數中必須包含一個有效的return語句。

以上是預存程序和函數有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn