DBAtlas · Атлас эксплуатации баз данных

1418: Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled)

MySQL

Что это значит?

Создавалась хранимая функция, но двоичное журналирование включено, а функция не объявлена ни с одной из характеристик детерминированности/доступа к данным. MySQL отклоняет такую функцию, так как она неоднозначна с точки зрения безопасности репликации.

Почему возникает?

Функция определена без характеристик DETERMINISTIC, NO SQL или READS SQL DATA при log_bin = ON и log_bin_trust_function_creators=OFF. Без этих характеристик MySQL не может быть уверен, что функция даст тот же результат на реплике.

Как исправить

Объявите поведение функции правильными характеристиками: добавьте DETERMINISTIC, если она действительно детерминирована, NO SQL, если она не обращается к данным, READS SQL DATA, если только читает. Если вы уверены в безопасности функций, можно задать log_bin_trust_function_creators=1 в качестве централизованной политики; однако правильное объявление характеристики — самый безопасный подход. Убедитесь, что характеристика соответствует фактическому поведению функции.

Открыть в DBAtlas →

Ещё по этой СУБД