This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA..

一个很烂的标题

原文链接:https://culturesun.site/index.php/archives/503.html

标题很长,但是还是有三个...表示省略。 这是一个MySQL自定义函数的报错信息。全部报错信息如下:

[note type="danger flat"]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)[/note] 中文大意就是使用百度翻译翻译翻译

[note-ico type="flat" ico="哈哈"]此函数的声明中没有DENTISTIC、NO SQL或READS SQL DATA,并且启用了二进制日志记录(您可能需要使用不太安全的log_bin_trust_function_creators变量)[/note-ico]

解决方法

使用chatgpt解决,啊哈哈。 这个警告是因为您的函数没有指定 DETERMINISTIC、NO SQL 或 READS SQL DATA 中的任何一个,而且二进制日志记录已启用。这意味着您的函数可能会对数据进行更改,但 MySQL 不知道它是否会更改数据,因此会发出警告。 为了解决这个问题,您可以在函数声明中添加 DETERMINISTIC、NO SQL 或 READS SQL DATA 中的一个或多个。这些关键字告诉 MySQL 函数的行为方式,从而使其能够更好地优化查询和避免不必要的警告。 如果您的函数不会更改数据,则可以将其声明为 NO SQL。如果您的函数会更改数据,则应该将其声明为 READS SQL DATA 或 MODIFIES SQL DATA,具体取决于函数的行为。 如果您不想看到这个警告,可以将 log_bin_trust_function_creators 变量设置为 1,这将允许您创建没有 DETERMINISTIC、NO SQL 或 READS SQL DATA 的函数,但这可能会降低 MySQL 的安全性。

小小结语

各个数据库之间的差异挺大的,甚至是SQL的使用,更别说自定义函数这些了。 以下是一篇关于MySQL自定义函数讲解很好的文章(至少我认为),很容易学会简单基础的自定义函数。 跳转链接在此

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值