我正在使用binary-logging
激活了mixed-mode
的Mysql 5.7。我想定义一个不确定的函数。
我从manual收集到的信息是,必须仅为log_bin_trust_function_creators
设置全局变量binlog_format=STATEMENT
才能覆盖检查:
当您尝试执行存储的函数时,如果设置了binlog_format = STATEMENT,则必须在函数定义中指定DETERMINISTIC关键字。如果不是这种情况,除非指定log_bin_trust_function_creators = 1来覆盖此检查,否则会生成错误并且函数不会运行。
要放松函数创建时的先前条件(必须具有SUPER特权,并且必须声明函数为确定性或不修改数据),请将全局log_bin_trust_function_creators系统变量设置为1
< / li>
为什么不足够明确地将我的函数标记为NOT DETERMINISTIC
以便让MySQL将其标记为unsafe
并因此使用基于行的复制而不是基于语句的复制?