Tema: Trigger
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/07/2011, 20:44
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

La idea está cerca, pero hay algunas observaciones:

1) Si el trigger es para un INSERT, entonces la pseudovariable OLD no existe, porque OLD sólo existe para los UPDATE, y no es el caso. Eso es porque OLD representa el registro a modificar en su estado actual y NEW son los nuevos datos, los que pueden ser todos los campos, o sólo algunos. En ese contexto, OLD no existe en el INSERT porque en una inserción no hay estado anterior de un registro; es todo nuevo.

2) Si es para un UPDATE, ¿qué es lo que estarías actualizando? ¿Cuál o cuáles campos? ¿Qué registro o registros abarcaría?

3) Si es un UPDATE, todo el trigger es innecesario, porque la misma operación se puede escribir en el UPDATE, sin ningún problema:
Código MySQL:
Ver original
  1. UPDATE Controles
  2. SET anterior = IF(control = CURDATE(), control, anterior),
  3.        control = IF(control = CURDATE(), siguiente, control),
  4.        siguiente = IF(control = CURDATE(), ADDDATE(siguiente, INTERVAL 6 MONTH), siguiente)
  5. WHERE dni = valorBuscado;
Donde valorBuscado es un DNI cuyos datos se quieren actualizar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 13/07/2011 a las 20:51