![]() |
Insert desde select no ejecuta trigger
Hola.
Bueno estoy trabajando en un proyecto en el cual realizo una consulta y de ella realizo inserción en la tabla correspondiente... hasta ahi todo va bien porque es solo algo como esto.., Así de sencillo, sin embargo en la tabla que he denominado "mitabla" existe un trigger que se ejecuta al insertar en el evento after... en él lo que hago es un conjunto de formulas para calcular otros campos que hacen parte de "mitabla" pero nunca se logran ejecutar. Lo curioso es que cuando hago un insert convencional sin la utilización de select todo va bien. Les agradezco la ayuda que me puedan otorgar. Saludos! |
Cita:
|
Gracias, casimiro y si tienes razón olvide algunos detalles.. el trigger se encuentra en el before insert, pués realmente no he podido colocarlo en el after insert, pués me muestra error de que NEW no es permitido... el código es el siguiente.
Como pueden observar se encarga de realizar algunos cálculos e incrustarlo en el campo correspondiente... quizás sea algo que no tengo en cuenta puesto que soy nuevo en MYSQL... Gracias. |
Entonces me imagino que el insert que has puesto antes también es ficticio, esto me recuerda cuando una madre va al médico y le dice: mire, doctor, es que mi hija dice que le duele por aquí, ¿qué puede ser?
Y el doctor la mira perplejo ;) |
Casimiro tienes toda la razón incluire el insert real:
Y si existen datos en la tabla original que referencian a los campos que deben ser calculados pero e intentado también enviándolos y aun así no funcionan, no se que otra información requieres para que me puedas dar una mano si es así coméntame. |
Definitivamente no es mi fuerte, pero primero mejor obviar algunas cosas
Cuando ejecutas la sentencia INSERT con el SELECT incluido, en la tabla movimientos_detalles_t se genera una nuevo registro? Es decir, la insercion es exitosa? O fracasa? Podrias buscar herramientas de depuracion para MySQL, por ejemlo esta o esta |
Agustin, gracias por tu aporte estuve revisando pero al parecer le utilidad es solo para procedimiento y funciones y no logré que mostrará algo referente a los datos que deben llegar al trigger.
|
La pregunta es, para empezar, ¿se produce el insert correctamente?
|
El insert se ejecuta de manera correcta, solo como explicaba los datos que van en los campos
Que son los que se deberían calcularse con el trigger nunca lo hacen a través de la inserción utilizando el select... lo curioso es que cuando lo hago registro por registro con la estructura:
teniendo en cuenta que el trigger se ejecuta en el evento before insert. |
No conozco mysql, aunque ¿has probado cambiar al evento afterinsert?
|
Trigger Verificacion
Hola, no conosco mysql pero:
1. Prueba si el trigger se ejecuta : crea una excepcion , si la excepcion se efecuta se que el trigger se ejecuta, ahi voy bien 2. cambia uno de los valores calculados por el trigger colocando una constante por ejemplo 1 nigun otro calculo si lo hace esto bien 3. haga calculo por calculo porque es posible que al calcular se exceda un limite o venga un nulo saludes |
Bueno, ya he probado enviando valores fijos... y sigue igual, deshabilite el trigger y funciona definitivamente el problema es con el trigger... Cree un procedimiento almacenado que luego de insertar recorriera y calcular y sigue sin funcionar
|
¿La sintaxis del código del trigger está bien, no da ningún error al compilarlo?. Desconozco cómo es en mysql.
Crea un trigger simple para probar, algo así como:
|
La franja horaria es GMT +2. Ahora son las 03:13:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi