Tengo una base de datos MySQL ejecutándose en Azure. He estado tratando de crear un activador muy básico que probé en una instancia local de MySQL que funcionó como se suponía que debía hacerlo.
Sin embargo, no parece una opción para crear disparadores en la base de datos MySQL de Azure.
> CREATE TRIGGER update_last_modified_xxx -> BEFORE UPDATE ON xxx -> FOR EACH ROW -> BEGIN -> SET new.last_modified = NOW(); -> END; -> (1419, 'You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)') (edited) Y no es posible cambiar log_bin_trust_function_creators debido a las limitaciones establecidas por MS. ¿Me estoy perdiendo algo aquí o debería ser posible crear activadores en una base de datos MySQL que se ejecuta en Azure?
Simplemente configuré el parámetro log_bin_trust_function_creators en 'ON' a mano desde la pestaña 'Parámetros del servidor' en Azure Portal y resolví el problema.
El esquema en la base de datos Azure para MySQL de destino no debe tener ningún desencadenador.
Así que no creo que el servicio de Azure permita disparadores.
En Azure Database for MySQL, los registros binarios siempre están habilitados (es decir, log_bin está activado). En caso de que quiera usar disparadores, obtendrá un error similar a que no tiene el privilegio SUPER y el registro binario está habilitado (es posible que desee usar la variable menos segura log_bin_trust_function_creators).
El formato de registro binario siempre es FILA y todas las conexiones al servidor SIEMPRE usan registro binario basado en filas. Con el registro binario basado en filas, los problemas de seguridad no existen y el registro binario no puede interrumpirse, por lo que puede configurar log_bin_trust_function_creators de forma segura en TRUE.