update trigger describe before and all mysql triggers information-schema

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;