Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/09/2017, 11:17
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, 4 meses
Puntos: 2658
Respuesta: trigger que actualice la misma tabla

Cita:
Cómo que no se puede utilizar un trigger para actualizar la misma tabla si no vas a crear ningún bucle?
MySQL y María generan un bloqueo de tabla cuando se ejecuta el trigger precisamente para proteger la estabilidad de los procesos. Es tan simple como eso.
La idea es que no se puede permitir que se realicen operaciones DML sobre la propia tabla del trigger, porque estas operaciones podrían afectar el mismo registro sobre el que el proceso está operando, por ejemplo BORRANDOLO.
La metáfora sería que no puedes cortar la rama del arbol sobre el que estás parado...

¿Se entiende?

Si se permitiese eso, la tarea de BORRAR el registro se ejecutaría antes que la de UPDATE. En consecuencia ¿sobre qué registro se hace el UPDATE? ¿El que ya no existe? ¿Y cómo harías eso?

En otros DBMS el problema está resuelto con algoritmos que conservan el estado de la tabla para luego realizar una operación consistente.
Si quieres crear esa lógica por tu cuenta, siempre tienes la oportunidad de descargar el fuente de MySQL y crear esas rutinas. Todos los usuarios del mundo (y Oracle) estarán agradecidos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)