Ver Mensaje Individual
  #8 (permalink)  
Antiguo 02/11/2010, 03:55
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Ayuda con trigger en mysql

Cita:
Sobre lo de ir contra la misma tabla, no se a que te refieres yo me referia con lo de instead of insert a ayudarse de la tabla temporal de sistema "inserted" que existe en SQL Server, siempre se puede hacer lo que quiera con ella y segun las condiciones que expone el companiero, pasarla a la tabla donde queremos realmente insertarla ( o en un momento dado NO).
Me refiero que si tienes un TRIGGER definido, por ejemplo, para un INSERT en la tabla A, el código de ese trigger no puede realizar INSERT, DELETE, UPDATE, ALTER o DROP sobre la misma tabla A, porque en ese momento está bloqueada.
Tampoco puede hacer una operación de clase DML (INSERT, DELETE; UPDATE) sobre una tabla B si la tabla B tiene a su vez un TRIGGER que realice una operación DML sobre la tabla A (nested process).
Lo que si puedes hacer es crear otras tablas (temporales o no) o realizar operaciones sobre los valores del nuevo registro (INSERT) o del viejo (UPDATE).
Finalmente: No se pueden crear variables de tipo TABLE porque en MySQL no existe ese tipo de dato. Existen las tablas TEMPORARY y MEMORY, que cumplen funciones parecidas.
Tampoco se puede cancelar un INSERT/ UPDATE/ DELETE en proceso desde su TRIGGER.

Como dije: Hay cosas que son incompatibles entre diferentes BDMS. Por eso las migraciones son tan complejas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)