describe - trigger mysql update
MySQL deshabilita todos los disparadores (2)
No es posible "deshabilitar" los desencadenantes en mysql, sin embargo, se puede utilizar un truco para solucionar esto.
Agregue una condición en sus desencadenantes como:
if (DISABLE_TRIGER <> 1 ) then
#trigger body
end if;
y si desea deshabilitar los desencadenantes al importar solo:
SET @DISABLE_TRIGER = 1;
hacer importaciones
SET @DISABLE_TRIGER = 0;
Para la corrección de la prueba de la consulta necesito deshabilitar todos los disparadores en db Veo que en information_schema existe la tabla TRIGGERS. ¿Es posible desactivar temporalmente todos los desencadenantes usando esta tabla? Por ejemplo, como
update TRIGGERS set TRIGGERS_SCHEMA=''myschema_new''
where TRIGGERS_SCHEMA=''myschema''
y después de terminar todas las pruebas devuelve todos los disparadores como:
update TRIGGERS set TRIGGERS_SCHEMA=''myschema''
where TRIGGERS_SCHEMA=''myschema_new''
Puede ser que esto pueda corromper el db o después de que los disparadores no funcionen No lo encontré en la documentación.
No puede deshabilitar los desencadenantes directamente y no recomendaría hacer lo que está sugiriendo, pero puede hacer que su desencadenante compruebe si una variable (en mi ejemplo a continuación, @disable_triggers
) es NULL
antes de ejecutar el contenido del desencadenador. Por ejemplo:
Consulta:
SET @disable_triggers = 1;
// Your update statement goes here.
SET @disable_triggers = NULL;
Gatillos
IF @disable_triggers IS NULL THEN
// Do something use as the trigger isn''t disabled.
END IF;