1418: Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled) (la función no tiene DETERMINISTIC, NO SQL ni READS SQL DATA)
MySQL¿Qué significa?
Se estaba creando una función almacenada, pero el binary logging está habilitado y la función no se declaró con ninguna de las características de determinismo/acceso a datos. MySQL rechaza una función así porque es ambigua desde el punto de vista de la seguridad de la replicación.
¿Por qué ocurre?
La función se definió sin las características DETERMINISTIC, NO SQL o READS SQL DATA con log_bin en ON y log_bin_trust_function_creators=OFF. Sin estas características, MySQL no puede estar seguro de que la función produzca el mismo resultado en la réplica.
Cómo solucionarlo
Declare el comportamiento de la función con las características correctas: añada DETERMINISTIC si es realmente determinista, NO SQL si no accede a datos, READS SQL DATA si solo lee. Si está seguro de que las funciones son seguras, puede establecer log_bin_trust_function_creators=1 como política central; sin embargo, declarar correctamente la característica es el enfoque más seguro. Asegúrese de que la característica coincida con el comportamiento real de la función.
Más entradas de este motor
- 1785Statement violates GTID consistency
- 3024Query execution was interrupted, maximum statement execution time exceeded (ejecución de la consulta interrumpida; se superó el tiempo máximo de ejecución)
- 1298Unknown or incorrect time zone
- 1231Variable can't be set to the value of ... (no se puede asignar ese valor a la variable)