Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/08/2008, 06:48
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: trigger con update en la misma tabla

Tengamos en claro que los triggers son procedimientos que se "disparan" ante tres tipos de eventos: INSERT, UPDATE y DELETE. Como tales tienen restricciones:
1. No son recursivos.
2. No se pueden hacer tareas que afecten a la misma tabla que está gestionando el trigguer en curso.
3. No se puede definir más de un trigger para el mismo evento en la misma tabla.

El problema es que estás tratando de violar una restricción básica: intentas hacer un UPDATE donde estás controlando un INSERT...
Piensa eso: El motor de la base de datos sabe que se está administrando un evento INSERT pero no hay forma a priori de saber cuáles campos terminarán siendo afectados, y cómo afectará ésto a el o los índices que pueda haber, hasta que el proceso de inserción termine. Por ello te realiza un bloqueo implícito a nivel de tabla, con lo que no puedes realizar ninguna otra cosa hasta que la inserción se complete.
¿Se comprende?
La tarea que estás intentando hacer es imposible en ese contexto de restricciones y se debe realizar después de que hayas hecho la inserción y que la tabla se desbloquee.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)