首批通过分布式安全可靠测评,为关键业务系统打造
存储函数
更新时间:2025-09-17 08:58:23
函数可以理解为一种特殊的存储程序,函数可以有返回值,并且所有参数都是 IN 类型。
函数的结构
函数的结构如下,与存储过程相比,至少包含一个或多个 RETURNS 子句:
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...]
BEGIN -- 开始执行
SQL statement; [ SQL statement; ...]
END; -- 结束执行
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic: {
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
}
函数的创建
函数通过 CREATE FUNCTION 语句进行创建,并需满足如下条件:
函数需要考虑返回值的设置。
所有函数必须至少有一个
RETURNS语句。函数要作为表达式被调用,需要与其他语句结合使用。
示例如下:
obclient> CREATE FUNCTION my_func (c1 CHAR(20)) RETURNS CHAR(50) DETERMINISTIC
RETURN CONCAT('Thank ',c1,'!');
Query OK, 0 rows affected
obclient> SELECT my_func('You');
+----------------+
| my_func('You') |
+----------------+
| Thank You! |
+----------------+
1 row in set