1. 背景
* 自定義函數與存儲過程非常類似,但必須帶有返回值。
2. 自定義函數例子 [ 階乘 ]
* 創建自定義函數 func_factorial
delimiter 設置語句結束符
mysql> delimiter // mysql> CREATE FUNCTION func_factorial (total INT) -> RETURNS INT -> BEGIN -> DECLARE i INT; -> DECLARE res INT; -> SET i = 1; -> SET res = 1; -> IF total <= 0 THEN -> SET total = 1; -> END IF; -> WHILE i <= total DO -> SET res = res * i; -> SET i = i + 1; -> END WHILE; -> RETURN res; -> END; // Query OK, 0 rows affected (0.01 sec) mysql> delimiter ;
* 調用自定義函數 func_factorial
mysql> SELECT func_factorial(10); +--------------------+ | func_factorial(10) | +--------------------+ | 3628800 | +--------------------+ 1 row in set (0.01 sec)
3. 總結
以需求驅動技術,技術本身沒有優略之分,只有業務之分。