DBAtlas · Atlas de operaciones de bases de datos

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.

Abrir en DBAtlas →

Más entradas de este motor