浅谈mysql 自定义函数

 更新时间:2014年09月11日 09:59:15   投稿:hebedich  
本文主要是分析了一下在工作中写的一个mysql的自定义函数,很简单,仅仅是希望能对大家理解mysql自定义函数有所帮助。
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

因为工作需要,要写一个mysql的自定义行数,如下

DELIMITER $$
DROP FUNCTION IF EXISTS `onlineFunction`$$
CREATE FUNCTION `onlineFunction`(rrrr VARCHAR(50)) RETURNS VARCHAR(255)
BEGIN
IF(rrrr='online') THEN RETURN '上线';END IF;
END$$
DELIMITER ;

第一行DELIMITER 定义一个结束标识符,因为MySQL默认是以分号作为SQL语句的结束符的,而函数体内部要用到分号,所以会跟默认的SQL结束符发生冲突,所以需要先定义一个其他的符号作为SQL的结束符。没有加这个定义的话...

错误码: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end' at line 1

第二行是删除同名的类,不然会...

错误码: 1304
FUNCTION onlineFunction already exists

第三行第一函数名,函数变量,和返回类型

第四行begin是起始,与end$$对应

第五行是if判断语句,格式为

if(...) then
....;
elseif
....;
else
.....;
end if;
return ..;

有时候mysql不能建立自定义函数是因为该功能2未开启

输入 show variables like '%func%'; 命令

会看到 log_bin_trust_function_creators 的状态,如果是OFF表示自定义函数功能是关闭的

输入命令 set global log_bin_trust_function_creators=1;

可将 log_bin_trust_function_creators 开启自定义函数功能

但是这样设置是一个临时的方案,因为mysql自动重启后状态又会变为OFF,所以需要在

在服务启动时加上 “--log-bin-trust-function-creators=1 ”参数。
或在my.ini(my.cnf)中的[mysqld]区段中加上 log-bin-trust-function-creators=1。

相关文章

  • MySQL笔记之修改表的实现方法

    MySQL笔记之修改表的实现方法

    我们在创建表的过程中难免会考虑不周,因此后期会修改表。本篇文章就介绍了在mysql中修改表的实现方法。需要的朋友参考下
    2013-05-05
  • JDBC连接mysql8和mysql5.7的注意事项

    JDBC连接mysql8和mysql5.7的注意事项

    这篇文章主要介绍了JDBC连接mysql8和mysql5.7的注意事项,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • MySQL绿色版(zip解压版)的安装图文教程(mysql-5.6.22-win32.zip)

    MySQL绿色版(zip解压版)的安装图文教程(mysql-5.6.22-win32.zip)

    由于工作需要最近要开始研究MySQL了(看来学习都是逼出来的),本人对mysql没有研究,可以说一个小白。 下面就从安装开始吧,虽然网上关于这方面的东西很多,还是需要自己把操作过程写下来
    2016-06-06
  • mysql同步问题之Slave延迟很大优化方法

    mysql同步问题之Slave延迟很大优化方法

    这篇文章主要介绍了mysql同步问题之Slave延迟很大优化方法,需要的朋友可以参考下
    2016-05-05
  • mysql5.6.8源码安装过程

    mysql5.6.8源码安装过程

    这篇文章主要介绍了mysql5.6.8源码安装过程,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01
  • MySQL存储引擎InnoDB的配置与使用的讲解

    MySQL存储引擎InnoDB的配置与使用的讲解

    今天小编就为大家分享一篇关于MySQL存储引擎InnoDB的配置与使用的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql-5.7.28 在Linux下的安装教程图解

    mysql-5.7.28 在Linux下的安装教程图解

    这篇文章主要介绍了mysql-5.7.28 的Linux安装,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Navicat连接MySQL时报10060、1045错误及my.ini位置问题

    Navicat连接MySQL时报10060、1045错误及my.ini位置问题

    这篇文章主要介绍了Navicat连接MySQL的10060及1045报错,my.ini位置,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • MySQL之select、distinct、limit的使用

    MySQL之select、distinct、limit的使用

    这篇文章主要介绍了MySQL之select、distinct、limit的使用,下面文章围绕select、distinct、limit的相关资料展开聚集内容,需要的朋友可以参考一下
    2021-11-11
  • SQL实现LeetCode(183.从未下单订购的顾客)

    SQL实现LeetCode(183.从未下单订购的顾客)

    这篇文章主要介绍了SQL实现LeetCode(182.从未下单订购的顾客),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论

?


http://www.vxiaotou.com