Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Actualizar un campo con un trigger?

Estas en el tema de Actualizar un campo con un trigger? en el foro de Mysql en Foros del Web. Hola buenas, lo que quiero hacer es que al insertar una tupla en una tabla me actualice un campo de otra tabla, el codigo que ...
  #1 (permalink)  
Antiguo 26/02/2011, 11:15
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Actualizar un campo con un trigger?

Hola buenas, lo que quiero hacer es que al insertar una tupla en una tabla me actualice un campo de otra tabla, el codigo que tengo es este... pero no creo que este demasiado bien

Código:
DELIMITER |
create trigger ins_alquileres after insert on alquileres
for each row begin
  update usuarios.nalq=usuarios.nalq+1 where usuarios.dni_usu= inserted.rdni_usu;
end;
| DELIMITER;
a ver si me podeis echar una mano, gracias.
  #2 (permalink)  
Antiguo 26/02/2011, 13:42
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 4 meses
Puntos: 46
Respuesta: Actualizar un campo con un trigger?

Hola.

Cambia tu consulta, es como cualquier otro update

Cambia esto:
Código MySQL:
Ver original
  1. update usuarios.nalq=usuarios.nalq+1 where usuarios.dni_usu= inserted.rdni_usu;

por esto:
Código MySQL:
Ver original
  1. update usuarios set nalq=usuarios.nalq+1 where usuarios.dni_usu= inserted.rdni_usu;
Nota el set que coloque en el campo que se va a modificar.

Si manda algun error tambien postealo para asi saber que hacer

Suerte.
  #3 (permalink)  
Antiguo 26/02/2011, 14:12
Avatar de 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: Actualizar un campo con un trigger?

Cuidado con ese "inserted" como tabla de origen o valor entrante. Para usar los valores que están llegando en el INSERT se debe usar la pseudovariable NEW para acceder a ellos:
Código MySQL:
Ver original
  1. UPDATE usuarios
  2. SET nalq=usuarios.nalq+1
  3. WHERE usuarios.dni_usu= NEW.rdni_usu;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 26/02/2011, 19:27
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Actualizar un campo con un trigger?

vale con ese new y el set me funciona, muchas gracias!
el set se me olvido y el inserted lo habia visto en bastantes sitios, gracias de nuevo

Etiquetas: trigger, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:56.