1.问题产生原因:
(1)可能是软件 Navicat Premium 的版本不一样
(2)可能是与某些字符集不一样
2.找出解决办法:
(1)参考对照系统自带sys数据库表的函数找出的区别(后面遇到同样问题可以这样排查)
(2)不加 DETERMINISTIC 声明,新建保存失败
什么是DETERMINISTIC、NO SQL和READS SQL DATA声明?
在MySQL中,DETERMINISTIC、NO SQL和READS SQL DATA声明通常出现在创建存储过程或函数时。他们告诉MySQL如何处理函数或过程并与二进制日志记录有关。
DETERMINISTIC – 表示函数或过程是纯函数或过程,即它的输出完全由输入参数确定。自MySQL 5.0.0开始,DETERMINISTIC默认值为NOT DETERMINISTIC。
NO SQL – 表示函数或过程没有使用MySQL内置的SQL语句,而是使用其他编程语言编写的代码。
READS SQL DATA – 表示函数或过程的代码包含SQL语句,并且只能读取数据而不能修改数据。
3.新建函数流程:
4.运行使用函数:
或者