1. 程式人生 > >MySQL存儲過程和函數

MySQL存儲過程和函數

-c com eat sql strong 沒有 round 函數 load data

P176)存儲過程和函數的區別在於函數必須有返回值,而存儲過程沒有,存儲過程的參數可以使用IN、OUT、INOUT類型,而函數的參數只能指IN類型。如果有函數從其他類型的數據庫遷移到MySQL,那麽就可能因此需要將函數改造成存儲過程。

創建存儲過程需要create ROUNTINE權限,修改或者刪除存儲過程或者函數需要alter ROUTINE權限,執行存儲過程或者函數需要EXECUTE權限。

MySQL的存儲過程和函數允許包含DDL語句,也允許在存儲過程中執行提交(Commit,即確認之前的修改)或者回滾(Rollback,即放棄之前的修改),但是存儲過程和函數中不允許執行LOAD DATA INFILE語句。此外,存儲過程和函數中可以調用其它的過程和函數。

MySQL存儲過程和函數