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

[SOLUCIONADO] Problema con disparador al eliminar tupla

Estas en el tema de Problema con disparador al eliminar tupla en el foro de Mysql en Foros del Web. ¿Como puedo hacer que siempre que se elimine una tupla inserte esa misma tupla en otra tabla? Imagino que será mediante un disparador, pero lo ...
  #1 (permalink)  
Antiguo 09/03/2016, 01:07
 
Fecha de Ingreso: julio-2015
Mensajes: 25
Antigüedad: 8 años, 8 meses
Puntos: 0
Problema con disparador al eliminar tupla

¿Como puedo hacer que siempre que se elimine una tupla inserte esa misma tupla en otra tabla?
Imagino que será mediante un disparador, pero lo cierto es que esta parte de mysql no la he trabajado nunca y este ejemplo en concreto me vendria bien

Un saludo y muchas gracias
  #2 (permalink)  
Antiguo 09/03/2016, 02:57
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: Problema con disparador al eliminar tupla

Postea el código y dinos qué te falla, o que error te da.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 14/03/2016, 01:58
 
Fecha de Ingreso: julio-2015
Mensajes: 25
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Problema con disparador al eliminar tupla

No tengo mucha idea de usar disparadores, lo que trato de hacer es:

Código:
CREATE TRIGGER insertar_historico_fcloc001 BEFORE DELETE ON fcloc001
  FOR EACH ROW BEGIN
    INSERT INTO `historico_fcloc001` (
		`LOFE` ,
		`LPED` ,
		`LLINEA` ,
		`LFECOFE` ,
		`LFECPED` ,
		`LITEM` ,
		`LCODAR` ,
		`LCODCL` ,
		`LCANTI` ,
		`LPRECI` ,
		`LDTO` ,
		`LIMPOR` ,
		`LPLAZO` ,
		`LCANSER` ,
		`LCANPEN` ,
		`LLIQUID` ,
		`LCOSTE` ,
		`LAMPDES` ,
		`ACTUALIZAD` ,
		`FECACTU` ,
		`LALMACEN` ,
		`LRESNUM1` ,
		`LRESNUM2` ,
		`LRESSN1` ,
		`LRESSN2` ,
		`LRESSN3` ,
		`LRESSN4` ,
		`LRESFEC1` ,
		`LRESCAR1` ,
		`LBULTOS` ,
		`LNUMSERIES` ,
		`LSECORD` ,
		`LTXTORD` ,
		`LCOSADI` ,
		`LOBSINT` ,
		`LPPR` ,
		`LPREORIG` ,
		`LLARGO` ,
		`LANCHO` ,
		`LALTO` ,
		`LDTO2` ,
		`LDTO3` ,
		`LULTMODIF` ,
		`LTIPIVA` ,
		`LPORCIVA` ,
		`LPORCREC` ,
		`LIMPCONIVA`
		)
		VALUES (
		OLD.LOFE,
		OLD.LPED,
		OLD.LLINEA,
		OLD.LFECOFE,
		OLD.LFECPED,
		OLD.LITEM,
		OLD.LCODAR,
		OLD.LCODCL,
		OLD.LCANTI,
		OLD.LPRECI,
		OLD.LDTO,
		OLD.LIMPOR,
		OLD.LPLAZO,
		OLD.LCANSER,
		OLD.LCANPEN,
		OLD.LLIQUID,
		OLD.LCOSTE,
		OLD.LAMPDES,
		OLD.ACTUALIZAD,
		OLD.FECACTU, 
		OLD.LALMACEN,  
		OLD.LRESNUM1,  
		OLD.LRESNUM2,  
		OLD.LRESSN1,  
		OLD.LRESSN2,  
		OLD.LRESSN3,  
		OLD.LRESSN4,  
		OLD.LRESFEC1,  
		OLD.LRESCAR1,  
		OLD.LBULTOS,  
		OLD.LNUMSERIES,  
		OLD.LSECORD,  
		OLD.LTXTORD,  
		OLD.LCOSADI,  
		OLD.LOBSINT,  
		OLD.LPPR,  
		OLD.LPREORIG,  
		OLD.LLARGO,  
		OLD.LANCHO,  
		OLD.LALTO,  
		OLD.LDTO2,  
		OLD.LDTO3, 
		OLD.LULTMODIF ,  
		OLD.LTIPIVA,  
		OLD.LPORCIVA,  
		OLD.LPORCREC,  
		OLD.LIMPCONIVA
		);

  END;
Pero me da el siguiente error:

#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 '' at line 98
  #4 (permalink)  
Antiguo 15/03/2016, 02:23
 
Fecha de Ingreso: julio-2015
Mensajes: 25
Antigüedad: 8 años, 8 meses
Puntos: 0
Respuesta: Problema con disparador al eliminar tupla

Me respondo a mi mismo ^^

Era por los delimitadores, en mysql no lo puedes poner a pelo, tienes que poner
DELIMITER //

Al principio del disparador

Etiquetas: disparador, sql, tabla, tupla
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 02:02.