技术饭

MySQL创建自定义函数(Functions)

copylian    0 评论    8519 浏览    2018.10.05

1、开启关闭

查看函数功能是否开启:show variables like '%func%';

开启:SET GLOBAL log_bin_trust_function_creators=1;

关闭:SET GLOBAL log_bin_trust_function_creators=0;

2、格式

  1. CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的  

  2. RETURNS type  

  3. [ characteristic ...] routine_body  

  • CREATE FUNCTION 用来创建函数的关键字;

  • func_name 表示函数的名称;

  • func_parameters为函数的参数列表,参数列表的形式为:[IN|OUT|INOUT] param_name type

  1. IN:表示输入参数;

  2. OUT:表示输出参数;

  3. INOUT:表示既可以输入也可以输出;

  4. param_name:表示参数的名称;

  5. type:表示参数的类型,该类型可以是MySQL数据库中的任意类型;

  • RETURNS type:语句表示函数返回数据的类型;

  • characteristic: 指定存储函数的特性,取值与存储过程时相同

  1. DELIMITER //  

  2. CREATE FUNCTION GetEmployeeInformationByID(id INT)  

  3. RETURNS VARCHAR(300)  

  4. BEGIN  

  5.     RETURN(SELECT CONCAT('employee name:',employee_name,'---','salary: ',employee_salary) FROM employees WHERE employee_id=id);  

  6. END//  

  7. 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

只袄早~~~
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢