示例页面

mysql-自定义函数

0、结构

delimiter $$   -- 修改语句结束符,mysql 默认的结束符是分号,为了在函数体中避免遇到分号就结束,重新定义结束符

create function 函数名(形参) returns 返回值类型

begin

    // 函数体
    return 返回值数据;

end $$

delimiter ;  -- 将语句结束符修改回来

1、变量

局部变量:在函数体中通过declare进行声明,declare [变量名] [变量类型],局部变量可以使用set赋值或者使用into关键字。

用户变量:

报错代码:

1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
-- SET GLOBAL log_bin_trust_function_creators = 0;

delimiter $$

drop function if exists genPerson$$

create function genPerson(name varchar(20)) returns varchar(50)

begin

	declare str varchar(50) default '';
	
	set @tablename=name;
	
	set str = concat('crate table', @tablename, '(id int, name varchar(20));');
	
	return str;

end $$

delimiter;
posted @ 2024-02-05 10:38  没有风格的Wang  阅读(16)  评论(0编辑  收藏  举报