Mysql怎么创建函数
这篇文章主要介绍了Mysql怎么创建函数的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Mysql怎么创建函数文章都会有所收获,下面我们一起来看看吧。
Mysql如何创建函数DELIMITER$$DROPFUNCTIONIFEXISTSgenPerson$$CREATEFUNCTIONgenPerson(namevarchar(20))RETURNSvarchar(50)BEGINDECLAREstrVARCHAR(50)DEFAULT'';SET@tableName=name;SETstr=CONCAT('createtable',@tableName,'(idint,namevarchar(20));');returnstr;END$$DELIMITER;
就以上图的sql来说
(1)DELIMITER $$ 定义结束符。MySQL默认的结束符是分号,但是函数体中可能用到分号。为了避免冲突,需要另外定义结束符。
(2)DROP FUNCTION IF EXISTS genPerson$$ 如果函数genPerson已经存在了,就删除掉。
(3)CREATE FUNCTION 创建函数genPerson,函数的参数是name,返回值是varchar(50)。
(4)函数体放在BEGIN 与 END之间。
(5)DECLARE 声明变量,str类型是varchar(50),默认值是空。
(6)CONCAT连接多个字符串。
(7)RETURN 返回拼接后的字符串str。
从执行结果可以看出
Mysql无法创建函数 错误码 1418在mysql中创建函数,报
错误码: 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) 这个是创建函数功能未开。
解决方式1.查看是否打开创建函数功能
showvariableslike'%func%';-------------------------------------------+---------------------------------+-------+|Variable_name|Value|+---------------------------------+-------+|log_bin_trust_function_creators|OFF|+---------------------------------+-------
2.开启
SETGLOBALlog_bin_trust_function_creators=1;
3.再次查看
showvariableslike'%func%';-------------------------------------------+---------------------------------+-------+|Variable_name|Value|+---------------------------------+-------+|log_bin_trust_function_creators|ON|+---------------------------------+-------
关于“Mysql怎么创建函数”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Mysql怎么创建函数”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。