2010-11-22 18 views
7

Si ejecuto una consulta de inserción, pero tengo un desencadenante en una tabla para incrementar otro valor en función del desencadenante, pero hay algo mal con el desencadenador, ¿seguirá ejecutando mi consulta?¿Qué pasa si falla un disparador?

+0

@cdhowie, creo que estaba preguntando qué motor de base de datos. MySQL es compatible con muchos. – Brad

+1

¿es un disparador Antes de insertar o Después de insertar? –

Respuesta

8

La siguiente referencia article debería ayudar. Básicamente, un error durante un desencadenante ANTES o DESPUÉS provoca la falla de toda la instrucción que provocó la invocación del desencadenador.

Usted no debería tener que probar esto, pero si quería probar esto de forma rápida, sencilla crear una tabla ficticia con un desencadenador de inserción fallado. Los resultados serían muy claros a partir de ahí.

Espero que haya ayudado

+0

Esto es un poco engañoso: la instrucción falla, pero solo se revierte si usa un tipo de tabla transaccional (por ejemplo, innodb). Para myisam, puede dejar cambios intermedios comprometidos permanentemente. –

Cuestiones relacionadas