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

Hacer un load data insertando solo las filas que no coincidan con las que ya hay

Estas en el tema de Hacer un load data insertando solo las filas que no coincidan con las que ya hay en el foro de Mysql en Foros del Web. Necesito hacer un load data que inserte todo un fichero txt pero que mire antes si la fila que insertara ya se encuentra en la ...
  #1 (permalink)  
Antiguo 24/01/2011, 03:18
 
Fecha de Ingreso: mayo-2008
Mensajes: 228
Antigüedad: 14 años, 2 meses
Puntos: 2
Hacer un load data insertando solo las filas que no coincidan con las que ya hay

Necesito hacer un load data que inserte todo un fichero txt pero que mire antes si la fila que insertara ya se encuentra en la base de datos.

Actualmente lo que me hace es sobrescribirme en la base de datos todo, y claro preferiria tener una copia de seguridad donde estuvieran todos los datos.

Normalmente tengo que poner lo siguiente.

LOAD DATA INFILE 'C:/wamp/www/productos.txt' INTO TABLE productos_sin_dvd
FIELDS TERMINATED BY '|' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES

¿ Existe alguna opcion de no remplazar si ya existe la linea a insertar ?
  #2 (permalink)  
Antiguo 24/01/2011, 05:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Hacer un load data insertando solo las filas que no coincidan con las que

Hasta lo que y sé y he probado, solamente usar tablas temporales para tomar la carga y luego realizar un INSERT IGNORE INTO.... o usar un SP para cruzar los datos y verificar qué se carga y qué no.
Puede que necesites una sola tabla temporal o dos, según el caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: data, filas, load
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 13:09.