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

duda con LOAD DATA

Estas en el tema de duda con LOAD DATA en el foro de Mysql en Foros del Web. Tengo una duda con el metodo LOAD DATA en mysql Mi tabla es la siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original CREATE TABLE   `pruebas` ...
  #1 (permalink)  
Antiguo 03/09/2010, 00:09
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 1
duda con LOAD DATA

Tengo una duda con el metodo LOAD DATA en mysql

Mi tabla es la siguiente:

Código MySQL:
Ver original
  1. CREATE TABLE  `pruebas`.`ejemplo` (
  2.   `ejemplo_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3.   `ejemplo_rfc` varchar(45) DEFAULT NULL,
  4.   `ejemplo_importe` decimal(10,2) DEFAULT NULL,
  5.   `ejemplo_tipo` varchar(10) DEFAULT NULL,
  6.   `ejemplo_cons` int(10) unsigned DEFAULT NULL,
  7.   PRIMARY KEY (`ejemplo_id`)

Tengo un archivo csv con la siguiente estructura: rfc,importe

con los siguientes registros por ejemplo:

AAAAAAAAAAA,10.0
WWWWWWW,234.90
RRRRRRRRRRR,45.67

El query para lograr esto seria de la siguiente manera:

Código MySQL:
Ver original
  1. LOAD DATA LOCAL INFILE d:/archivo.csv'" &_
  2.     " REPLACE INTO TABLE ejemplo" &_
  3.     " FIELDS TERMINATED BY ',' " &_
  4.     " LINES TERMINATED BY '\n' " &_
  5.     " (ejemplo_rfc,ejemplo_importe);


pero lo que me gustaria hacer es agregar datos a todos los registros importados en esa consulta es decir

que en el campo ejemplo_tipo se ingrese un valor que pueda yo mandar en la consulta pero no viene en el archivo csv es decir un valor "a" para la importacion, este valor puede cambiar osea me gustaria pasarlo como variable. lo mismo en el caso del campo ejemplo_cons un valor numerico pero tambien pasarlo como variable, sin la necesidad de que se edite el csv

Espero haberme explicado correctamente ya que este es un problema que no puedo resolver.
  #2 (permalink)  
Antiguo 03/09/2010, 00:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: duda con LOAD DATA

usando el SET como te recomienda el manual. Echa un vistazo aquí.
http://dev.mysql.com/doc/refman/5.0/es/load-data.html
Ojo, porque estás usando REPLACE, eso, creo que para una primera carga no te dará problema, pero si cargas sobre un archivo existente de base de datos con primary key, te sustituirá los valores de aquellos registros cuya primary key coincida con el campo de csv que en el orden corresponda con esa primary key. Por otra parte, no das orden de campo. Eso funciona si esos campos ahora vacíos están al final; si no es así, tendrás que ofrecer la lista de campos en los que se cargan los datos tal y como vienen en el csv.
  #3 (permalink)  
Antiguo 03/09/2010, 01:01
Avatar de Fabu_dina  
Fecha de Ingreso: enero-2004
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 1
Respuesta: duda con LOAD DATA

Muchas gracias

En algunas ocaciones si es carga inicial antes de hacerla hago un truncate a la tabla pero en ocaciones si lo utilizo para cargar informacion a la tabla y conservar los demas registros como evitaria eso de remplazar los existentes

Ya me funciono la opcion set para cargar variables no contenidas en los cvs


Saludos

Etiquetas: data, 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 15:07.