MySQL недетерминированная функция с двоичным режимом регистрации = смешанные требования log_bin_trust_function_creators - PullRequest
0 голосов
/ 11 февраля 2019

Я использую Mysql 5.7 с binary-logging, активированным с помощью mixed-mode.Я хочу определить функцию, которая не является детерминированной.Из руководства я понял, что глобальная переменная 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

Почему этого не происходитдостаточно, чтобы явно пометить мою функцию как NOT DETERMINISTIC, чтобы MySQL пометил ее как unsafe и, следовательно, использует репликацию на основе строк вместо операторов?

...