Задать вопрос
@immelnikoff
Изучаю БД

При попытке создать пользовательскую функцию в MySQL 8.0 возникает ошибка 1418. На сервере MySQL 5.6 создается без проблем. Почему?

Текст ошибки: ERROR: Error 1418: 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)

Изначально у меня не было прописаны характеристики. Но после этой ошибки я прописал NOT DETERMINISTIC, так моя функция не является детерминированной. А еще она написана на SQL (значение по умолчанию) и не является READS SQL DATA, так как она пишет или изменяет записи. Так вот, я прописал NOT DETERMINISTIC и ничего не изменилось... Как мне побороть эту ошибку?
  • Вопрос задан
  • 5044 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Собственно, ответ на ваш вопрос заключён в тексте ошибки.
Вы используете бинарные логи, которые содержат только последовательность выполняемых запросов. Поскольку ваша функция не детерминирована, она при каждом следующем вызове из одного и того же состояния может вернуть разные значения, соответственно MySQL не может гарантировать точную репликацию и/или восстановление данных из бинарного лога.
https://dev.mysql.com/doc/refman/5.7/en/stored-pro...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@iljaGolubev
попробуйте добавить log_bin_trust_function_creators = 1;
reed this
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы