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_factorialmysql> SELECT func_factorial(10);
+--------------------+
| func_factorial(10) |
+--------------------+
| 3628800 |
+--------------------+
1 row in set (0.01 sec)
3. 总结
以需求驱动技术,技术本身没有优略之分,只有业务之分。