求助:数据库中 什么sql不能在 function 中使用?

029ye 2019-05-25 05:36:29
数据库中 什么sql不能在 function 中使用?
面试中被问这么个问题,不知道怎么回答,求高手指点
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
带我飞的云 2019-05-28
  • 打赏
  • 举报
回复
我觉得这个问题应该是考SQL语句的,应该是不能使用数据定义语言和数据操纵语言(Insert , update , Aleter, delete);
029ye 2019-05-28
  • 打赏
  • 举报
回复
引用 3 楼 AHUA1001 的回复:
动态生成的语句,不可以在函数中执行。

正确
AHUA1001 2019-05-27
  • 打赏
  • 举报
回复
动态生成的语句,不可以在函数中执行。
029ye 2019-05-26
  • 打赏
  • 举报
回复
@受了伤风的星辰
这只是在主从同步binlogs 中不安全而已,不是不能用。虽然不是我要的答案,但还是谢谢你!!
遇星 2019-05-26
  • 打赏
  • 举报
回复
这个跟binlog有关,总的来说就是,那些对于binlog来说是unsafe的语句吧,例如一个SQL使用uuid()这个函数,在本实例使用是没问题,但是如果跟着binlog传到从库,在从库执行uuid()又会是另一个结果,这就导致了同一个函数在主从的执行结果不一致了。当然这只是针对statement格式的binlog。 可以通过设置set global log_bin_trust_function_creators=0来规避一些约束,我之前写过一篇相关博文: https://blog.csdn.net/weixin_39004901/article/details/89518987 关于函数里SQL的一些限制,可以仔细看一下官方文档的内容,下面: https://dev.mysql.com/doc/refman/5.7/en/stored-programs-logging.html

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧