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

[SOLUCIONADO] Como crear trigger entre 2 tablas

Estas en el tema de Como crear trigger entre 2 tablas en el foro de Mysql en Foros del Web. hola no se mucho de triggers y necesito ayuda para crear uno. Tengo 2 tablas relacionadas: --Album:(id, titulo, fecha_actualizacion) --Imagen:(id, imagen, id_album) y lo que ...
  #1 (permalink)  
Antiguo 29/11/2013, 08:48
Avatar de lekuack  
Fecha de Ingreso: agosto-2012
Ubicación: Cabrero
Mensajes: 35
Antigüedad: 11 años, 7 meses
Puntos: 0
Como crear trigger entre 2 tablas

hola no se mucho de triggers y necesito ayuda para crear uno.

Tengo 2 tablas relacionadas:

--Album:(id, titulo, fecha_actualizacion)
--Imagen:(id, imagen, id_album)

y lo que necesito es que al insertar un campo en la tabla imagen me actualice la fecha_actualizacion de la tabla album de acuerdo al id de el mismo.

Espero me puedan ayudar de antemano muchas gracias
  #2 (permalink)  
Antiguo 29/11/2013, 09:18
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Como crear trigger entre 2 tablas

Código MySQL:
Ver original
  1. CREATE TRIGGER tonto_el_que_lo_lea
  2. AFTER INSERT ON Imagen
  3.     UPDATE Album
  4.     SET fecha_actualizacion = NOW()
  5.     WHERE id= NEW.id_album
  #3 (permalink)  
Antiguo 29/11/2013, 09:52
Avatar de lekuack  
Fecha de Ingreso: agosto-2012
Ubicación: Cabrero
Mensajes: 35
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como crear trigger entre 2 tablas

me da el siguiente error cuando creo el trigger:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 8
  #4 (permalink)  
Antiguo 29/11/2013, 10:05
 
Fecha de Ingreso: marzo-2013
Mensajes: 83
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: Como crear trigger entre 2 tablas

no puedo crear con esa sintaxis el trigger, no se si será mi versión pero no me "colorea- reconoce" las palabras reservadas AFTER, ROW, BEGIN y END
  #5 (permalink)  
Antiguo 29/11/2013, 10:18
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Como crear trigger entre 2 tablas

Prueba
Código MySQL:
Ver original
  1. CREATE TRIGGER tonto_el_que_lo_lea
  2. AFTER INSERT ON Imagen
  3.     UPDATE Album
  4.     SET fecha_actualizacion = NOW()
  5.     WHERE id= NEW.id_album
  #6 (permalink)  
Antiguo 29/11/2013, 10:21
Avatar de lekuack  
Fecha de Ingreso: agosto-2012
Ubicación: Cabrero
Mensajes: 35
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como crear trigger entre 2 tablas

Ahi si funciono sin problemas, muchas gracias por tu ayuda
  #7 (permalink)  
Antiguo 29/11/2013, 10:34
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, 4 meses
Puntos: 2658
Respuesta: Como crear trigger entre 2 tablas

Cita:
Iniciado por joselegolas Ver Mensaje
no puedo crear con esa sintaxis el trigger, no se si será mi versión pero no me "colorea- reconoce" las palabras reservadas AFTER, ROW, BEGIN y END
Eso dependerá de en qué estás intentando correrla.
¿phpMyadmin?
¿MySQL Workbench?
Hay que tener en cuenta que para que pueda compilar correctamente, por empezar cada sentencia debe ser cerrada con el reminador de sentencias punto y coma (;), y además que al ser una rutina multilinea, debe ser realizado usando DELIMITER para reemplazar momentáneamente los terminadores de sentencia:
Código SQL:
Ver original
  1. DELIMITER $$
  2. CREATE TRIGGER tonto_el_que_lo_lea
  3. AFTER INSERT ON Imagen
  4. FOR EACH ROW
  5. BEGIN
  6.     UPDATE Album
  7.     SET fecha_actualizacion = NOW()
  8.     WHERE id= NEW.id_album;
  9. END$$
  10. DELIMITER ;
@marlanga había omitido el final de la sentencia dentro del BEGIN/END. Por eso el fallo.
__________________
¿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; 29/11/2013 a las 14:41
  #8 (permalink)  
Antiguo 30/11/2013, 16:54
Avatar de lekuack  
Fecha de Ingreso: agosto-2012
Ubicación: Cabrero
Mensajes: 35
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Como crear trigger entre 2 tablas

Gracias me servirá para tener en cuenta a futuro

Etiquetas: campo, tabla, tablas, trigger
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 17:48.