技术饭
MySQL创建自定义函数(Functions)
1、开启关闭
查看函数功能是否开启:show variables like '%func%';
开启:SET GLOBAL log_bin_trust_function_creators=1;
关闭:SET GLOBAL log_bin_trust_function_creators=0;
2、格式
CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的
RETURNS type
[ characteristic ...] routine_body
CREATE FUNCTION 用来创建函数的关键字;
func_name 表示函数的名称;
func_parameters为函数的参数列表,参数列表的形式为:[IN|OUT|INOUT] param_name type
IN:表示输入参数;
OUT:表示输出参数;
INOUT:表示既可以输入也可以输出;
param_name:表示参数的名称;
type:表示参数的类型,该类型可以是MySQL数据库中的任意类型;
RETURNS type:语句表示函数返回数据的类型;
characteristic: 指定存储函数的特性,取值与存储过程时相同
DELIMITER //
CREATE FUNCTION GetEmployeeInformationByID(id INT)
RETURNS VARCHAR(300)
BEGIN
RETURN(SELECT CONCAT('employee name:',employee_name,'---','salary: ',employee_salary) FROM employees WHERE employee_id=id);
END//
DELIMITER ;
3、实例
<!--创建函数-->
DROP FUNCTION IF EXISTS fn_classes_teacher_num;
CREATE FUNCTIONfn_classes_teacher_num(id_in varchar(20))
RETURNS INTEGER
#READS SQL DATA
BEGIN
RETURN (SELECT num_of_teacher from classes where id=id_in);
END;
<!--使用函数-->
select fn_classes_teacher_num('1');
4、其他操作
删除:drop function 自定义函数名
显示:创建自定义函数的语句 show create function 自定义函数名 ;
查看有哪些自定义函数:show function status;
修改自定义函数:alert function
文明上网理性发言!