在Navicat中经常需要创建函数或者过程,在默认环境中,创建函数通常会报错,类似如“ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQ
L DATA in its declaration and binary logging is enabled (you *might* want to use
 the less safe log_bin_trust_function_creators variable)”///“Error Code: 1655 Cannot create stored routine `myproc`. Check warnings”等错误提示。

在网络上找了许久,说法很多,原因也很多,总结下来有如下几个原因:

1、函数创建开关未打开,导致不能创建函数

可以在控制台运行

SET GLOBAL log_bin_trust_function_creators = 1;

即可打开创建开关,经过测试正常。

2、MySQL创建函数的方法不同

MySQL需要在执行的SQL前加delimiter,定义个开始字符和结束字符,告诉MySQL解释器函数体结束了。常见delimiter后跟//或$$,当//出现之后,MySQL解释器才正式执行。例子如下:

DELIMITER //
CREATE DEFINER = CURRENT_USER FUNCTION `Test`(`ttt` varchar)RETURNS char
BEGIN#Routine body goes here...RETURN '';
END;//
DELIMITER;

3、函数体中添加开关

...
DETERMINISTIC;
READS SQL DATA;
BeginEnd;

4、MySQL数据库运行模式

解決方式:
修改my.ini的sql-mode(sql-mode="ANSI,TRADITIONAL"),重启MySQL。

通过1、2方法基本能解决大多数问题,后两种可以根据需要使用。

Navicat 中创建MySQL函数失败的解决相关推荐

  1. 计算机定时关机计划任务失败,电脑无法创建任务计划怎么办|电脑中创建任务计划失败的解决方法...

    ‍ 如果我们要实现定时关机或者关机自动清理系统垃圾等功能,可以借助电脑系统中的任务计划程序来设置.首先就是要创建任务计划,刚开始的前几个步骤还可以正常完成,到最后一步就会弹出无法创建任务计划的提示.所 ...

  2. 关于VS Code中C文件调用其他C文件函数失败的解决方法

    关于VS Code中C文件调用其他C文件函数失败的解决方法 在main.c文件中添加 #include <windows.h> 头文件,可以解决.

  3. php fopen函数 返回值,php中fopen函数失败的解决方法

    php中fopen函数失败的解决方法 发布时间:2021-03-29 12:26:30 来源:亿速云 阅读:86 作者:小新 这篇文章将为大家详细讲解有关php中fopen函数失败的解决方法,小编觉得 ...

  4. apmserv5.2.6 mysql启动失败_win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法...

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\ 2.去掉 ...

  5. win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\  2.去 ...

  6. Button中command后面函数添加参数解决方法

    Button中command后面函数添加参数解决方法 参考文章: (1)Button中command后面函数添加参数解决方法 (2)https://www.cnblogs.com/smart-ziha ...

  7. linus启动mysql失败_Linux下MySQL启动失败的解决一例

    Linux下MySQL启动失败的解决一例: 当敲mysql命令时 Can't connect to local MySQL server through socket '/var/lib/mysql/ ...

  8. weblogic中数据源_如何在WebLogic Server中创建MySQL数据源

    weblogic中数据源 使用应用程序服务器的一件很酷的事情是,它允许您在应用程序外部创建DataSource,并且可以与线程池和事务管理器等一起管理它.对于WebLogic Server,它附带了许 ...

  9. 如何在WebLogic Server中创建MySQL数据源

    使用应用程序服务器的一个很酷的事情是,它允许您在应用程序外部创建DataSource,并且可以与线程池和事务管理器等一起管理它.对于WebLogic Server,它附带了许多内置的JDBC驱动程序, ...

最新文章

  1. Python学习笔记(八)—使用正则获取网页中所需要的信息。
  2. 设计模式学习3——装饰者模式(Decorator)
  3. 使用I/O 系统调用--copy.c
  4. 说一说Android事件分发中的requestDisallowInterceptTouchEvent
  5. JAVA异常处理分析(中)
  6. #error This file requires compiler and library support for the ISO C++ 2011 standard
  7. SQL67 牛客每个人最近的登录日期(二)
  8. DSP sawtooth锯齿波与square方波matlab产生(M2.2)
  9. C#控制 计算机中“服务”的启动与停止 转
  10. jackson 进行json与java对象转换 之二
  11. EF里查看/修改实体的当前值、原始值和数据库值
  12. Linux磁盘分区及文件系统格式化和挂载
  13. Autodesk 3DSMax 2014 安装注册说明
  14. 基于中间件的开发---中间件技术
  15. 设计模式:行为型模式
  16. JS——判断变量类型方法汇总
  17. DuiLib : 做一个没有任务栏图标的Dialog
  18. UltraEdit小众用法
  19. 你好,智·世界竞赛大神社团达人专场,来听听赛场师兄的升级打怪心法
  20. 蓝桥杯:穿越雷区——DFS

热门文章

  1. Swagger UI汉化
  2. C语言:prctl函数的用法
  3. 你问我答,这样的学习方式你喜欢吗
  4. C++String头文件的一些知识点
  5. 清华大学计算机与芯片专业,池保勇
  6. River Locks
  7. 【五】页面和打印设置
  8. ubuntu 虚拟机安装Gtest
  9. iOS 苹果开发者账户 (证书、标识符和配置文件:Certificates, Identifiers Profiles)概述
  10. C#,入门教程(32)——程序运行时的调试技巧与逻辑错误探针技术与源代码