Al importar una base de datos MySQL, puede encontrar el error "1418 (HY000) en la línea 10185: Esta función no tiene nada de DETERMINISTA, NO SQL o LECTURA DE DATOS SQL en su declaración y El registro binario está habilitado (usted es posible que desee utilizar la variable log_bin_trust_function_creators menos segura)." Este error ocurre cuando no ha especificado la naturaleza determinista de una función dentro de la base de datos.
Para resolver este error, puede usar uno de dos métodos:
Método 1: Temporalmente Deshabilitar el registro binario
SET GLOBAL log_bin_trust_function_creators = 1;
Método 2: Configurar el archivo mysql.ini
log_bin_trust_function_creators = 1;
Al establecer este valor en 1, está relajando la verificación de funciones no deterministas. Esta opción debe usarse con precaución, ya que puede comprometer potencialmente la integridad de sus datos.
Comprensión de las funciones deterministas
Para evitar este error en el futuro, existe un mejor enfoque es utilizar declaraciones deterministas para funciones almacenadas. Estas declaraciones informan a MySQL si la función siempre produce el mismo resultado para los mismos parámetros de entrada. Aquí están las diferentes declaraciones deterministas:
DETERMINISTA:
NO DETERMINISTA:
LEE DATOS SQL:
NO SQL:
CONTIENE SQL:
Elegir la declaración correcta
Seleccionar la declaración correcta La declaración de una función depende de su comportamiento. Si la salida de la función depende de factores externos a la base de datos, como la hora actual o un generador de números aleatorios, debe declararse como NO DETERMINISTA. Si la función solo lee datos, se puede declarar como LECTURA DE DATOS SQL. Si la función no contiene ninguna instrucción SQL, se puede declarar como NO SQL.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3