什么是存儲函數:
存儲函數的語法:?
create?function?函數([函數參數[,….]])?Returns?返回類型 Begin if( Return?(返回的數據) Else? Return?(返回的數據) end?if; end;
例如:
?create?function?count_news(hits?int)?returns?int
與存儲過程返回參數不同的是存儲函數在定義時沒用直接聲明哪個變量是返回參數,而只是使用了returns聲明了返回參數所屬的數據類型,返回參數是在函數體中使用return返回要返回的數據變量的形式來表示的。這就需要注意的是:
存儲函數只支持輸入參數,并且輸入參數前沒有IN或INOUT.
存儲函數中的限制
流控制(Flow-of-control)語句(IF,?CASE,?while,?LOOP,?WHILE,?REPEAT,?LEAVE,ITERATE)也是合法的.?
變量聲明(DECLARE)以及指派(SET)是合法的.?
允許條件聲明.?
異常處理聲明也是允許的.?
但是在這里要記住函數有受限條件:不能在函數中訪問表.因此在函數中使用以下語句是非法的。?
ALTER?'CACHE?INDEX'?CALL?COMMIT?CREATE?DELETE? DROP?'FLUSH?PRIVILEGES'?GRANT?INSERT?KILL? LOCK?OPTIMIZE?REPAIR?REPLACE?REVOKE? ROLLBACK?SAVEPOINT?'SELECT?FROM?table'? 'SET?system?variable'?'SET?TRANSACTION'? SHOW?'START?TRANSACTION'?TRUNCATE?UPDATE
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END