Понимание ошибки: Требование объявления «DETERMINISTIC, NO SQL или READS SQL DATA»
При импорте базы данных в MySQL это возможно чтобы столкнуться со следующей ошибкой:
1418 (HY000) at line 10185: 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)
Эта ошибка указывает на отсутствие определенной функции или хранимой процедуры одно из следующих объявлений в его определении:
Когда в MySQL включено двоичное ведение журнала, эти объявления необходимы для обеспечения целостности данных и согласованности репликации.
Исправления для ошибка
Чтобы решить эту проблему, вы можете использовать одно из двух методы:
Включите переменную log_bin_trust_function_creators:
В консоли MySQL выполните следующую команду:
SET GLOBAL log_bin_trust_function_creators = 1;
Альтернативно добавьте следующее в файл конфигурации MySQL (например, mysql.ini):
log_bin_trust_function_creators = 1;
Включение этого параметра позволяет выполнять функции без явных объявлений во время двоичного кода. logging.
Добавьте соответствующее объявление к функции или процедуре:
Для функций, которые всегда производят один и тот же вывод для тех же входных параметров используйте объявление DETERMINISTIC. Например:
CREATE FUNCTION my_function() DETERMINISTIC BODY -- Your function logic END
Для функций, которые не содержат операторов SQL, используйте объявление NO SQL.
CREATE FUNCTION my_function() NO SQL BODY -- Your function logic END
Для функций, которые только читают данные из базы данных, используйте объявление READS SQL DATA.
CREATE FUNCTION my_function() READS SQL DATA BODY -- Your function logic END
Понимание объявлений детерминированных функций
Недетерминированные функции могут изменять данные или использовать непредсказуемые входные данные, что приводит к различным результаты для тех же входных параметров. Таким образом, важно точно объявлять поведение функции для оптимизации производительности и обеспечения целостности данных.
Документация MySQL предоставляет подробное руководство по различным вариантам объявления функций и хранимых процедур, что позволяет вам принимать обоснованные решения для каждого из них. функция. Неверные объявления могут повлиять на планы выполнения и производительность.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3