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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!