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

Importar csv a mysql desde phpMyAdmin

Estas en el tema de Importar csv a mysql desde phpMyAdmin en el foro de Mysql en Foros del Web. Buenas gente, tengo el siguiente problema. Necesito subir a una tabla unos 60000 registros. La tabla tiene la siguiente estructura id_ddjj, cuit_ddjj, periodo_ddjj, cuil_ddjj, ape_nom_ddjj, ...
  #1 (permalink)  
Antiguo 23/04/2013, 11:05
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Importar csv a mysql desde phpMyAdmin

Buenas gente, tengo el siguiente problema.
Necesito subir a una tabla unos 60000 registros.
La tabla tiene la siguiente estructura
id_ddjj, cuit_ddjj, periodo_ddjj, cuil_ddjj, ape_nom_ddjj, afili_ddjj, basico_ddjj, bruto_ddjj, aporte_ddjj, cct_ddjj, observacion_ddjj
Y tengo el archivo csv de esta manera
Código csv:
Ver original
  1. 20043672259,20112,20279530439,QUINTEROS JUAN CARLOS,0,2518.28,2864.45,57.28;1,,
  2. 20043672259,20112,20342172017,VILLAR FRANCISCO DANIEL,0,2518.28,2728.05,54.56;1,,
  3. 20043672259,20112,20370581968,LIMA CASAGNA LUCAS DAMIAN,0,2518.28,2755.33,55.1;1,,
  4. 20043672259,20112,20380061288,ALBORNOZ MAXIMILIANO EZEQUIEL,0,2518.28,2728.05,54.56;1,VER CONVENIO,
Vengo probando de distintas maneras pero no puedo subir los 60000 registros.
Espero puedan ayudarme.

Gracias
__________________
Nico...
  #2 (permalink)  
Antiguo 23/04/2013, 11:16
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: Importar csv a mysql desde phpMyAdmin

Cita:
Vengo probando de distintas maneras pero no puedo subir los 60000 registros.
Explica detalladamente qué es lo que probaste, qué consultas o procesos hiciste.

Recuerda que phpMyadmin no es MySQL, por lo que las soluciones que te demos tendrán que ver con MySQL, y pueden no darte resultados si careces de los permisos adecuados en el servidor que usas.
__________________
¿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 23/04/2013, 11:24
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Importar csv a mysql desde phpMyAdmin

Hola, gracias por responder.
Por ahora lo estoy haciendo con el xampp para poder exportarlo despues a sql y subirlo al servidor de produccion.
Probe con:

Código MySQL:
Ver original
  1. 20043672259,20112,20279530439,QUINTEROS JUAN CARLOS,0,2518.28,2864.45,57.28,1,,
  2.  
  3. 20043672259,20112,20342172017,VILLAR FRANCISCO DANIEL,0,2518.28,2728.05,54.56,1,,
  4.  
  5. 20043672259,20112,20370581968,LIMA CASAGNA LUCAS DAMIAN,0,2518.28,2755.33,55.1,1,,
  6.  
  7. 20043672259,20112,20380061288,ALBORNOZ MAXIMILIANO EZEQUIEL,0,2518.28,2728.05,54.56,1,VER CONVENIO,
Pero me sale que se excede el tiempo, ya lo modifique en el ini pero nada.
Tambien probe con el
Código MySQL:
Ver original 
Y el error en este es
Código MySQL:
Ver original
  1. #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 'ddjj.csv INTO TABLE ddjj' at line 1
__________________
Nico...
  #4 (permalink)  
Antiguo 23/04/2013, 11:28
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: Importar csv a mysql desde phpMyAdmin

Si el tema es desde un archivo, te sugiero olvidarte del INSERT (que de todos modos no veo que lo estés escribiendo bien para un INSERT múltiple), y te concentres en LOAD DATA.

Te recomiendo que uses este link para ver el uso correcto (es bastante claro y muy bueno): LOAD DATA
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/04/2013, 11:43
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Importar csv a mysql desde phpMyAdmin

Hola, usando el load data infile ahora me devuelve
#1062 - Duplicate entry '20043672259' for key 'PRIMARY'
Cuando se duplican las cuit por los distintos periodos.
Como hago para cambiar eso?
Gracias
__________________
Nico...
  #6 (permalink)  
Antiguo 23/04/2013, 11:48
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: Importar csv a mysql desde phpMyAdmin

Eso muestra que hay un error de diseño en la tabla destino, o al menos un error de definición de la PK.
Si hay más de una operación imputada al mismo CUIT el campo CUIT no puede ser ni PK, ni ser declarado UNIQUE. En todo caso si es parte de la PK tiene que ser una PK de más de un campo.

Muestrame el CREATE TABLE de esa tabla y explica qué representa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/04/2013, 11:58
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Importar csv a mysql desde phpMyAdmin

Código MySQL:
Ver original
  1. id_ddjj     bigint(10)          No  Ninguna     AUTO_INCREMENT  
  2. cuit_ddjj   bigint(11)          No  Ninguna        
  3. periodo_ddjj    int(6)          No  Ninguna        
  4. cuil_ddjj   bigint(11)          No  Ninguna            
  5. ape_nom_ddjj    varchar(50)     latin1_swedish_ci       No  Ninguna        
  6. afili_ddjj  int(1)          No  Ninguna        
  7. basico_ddjj     decimal(7,2)            No  Ninguna        
  8. bruto_ddjj  decimal(7,2)            No  Ninguna        
  9. aporte_ddjj     decimal(7,2)            No  Ninguna        
  10. cct_ddjj    int(1)          No  Ninguna          
  11. observacion_ddjj    varchar(30)     latin1_swedish_ci  
  12.  
  13. PK id_jj
__________________
Nico...
  #8 (permalink)  
Antiguo 23/04/2013, 12:09
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: Importar csv a mysql desde phpMyAdmin

CREATE TABLE, no DESCRIBE...

Código MySQL:
Ver original
  1. SHOW CREATE TABLE nombredelatabla
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 23/04/2013, 12:13
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Importar csv a mysql desde phpMyAdmin

Sorry, aca va...
Código MySQL:
Ver original
  1. CREATE TABLE `ddjj` (
  2.  `id_ddjj` bigint(10) NOT NULL AUTO_INCREMENT,
  3.  `cuit_ddjj` bigint(11) NOT NULL,
  4.  `periodo_ddjj` int(6) NOT NULL,
  5.  `cuil_ddjj` bigint(11) NOT NULL,
  6.  `ape_nom_ddjj` varchar(50) NOT NULL,
  7.  `afili_ddjj` int(1) NOT NULL,
  8.  `basico_ddjj` decimal(7,2) NOT NULL,
  9.  `bruto_ddjj` decimal(7,2) NOT NULL,
  10.  `aporte_ddjj` decimal(7,2) NOT NULL,
  11.  `cct_ddjj` int(1) NOT NULL,
  12.  `observacion_ddjj` varchar(30) NOT NULL,
  13.  PRIMARY KEY (`id_ddjj`)
__________________
Nico...
  #10 (permalink)  
Antiguo 23/04/2013, 13:04
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: Importar csv a mysql desde phpMyAdmin

Bueno, el problema es simple: El CSV está mal formateado, y está poniendo como primer campo al CUIT, cuando debería ser el Id de la tabla. Por eso repite.
La solución (se ve que no leíste a fondo el link que te pasé), es indica qué campos estás ingresando y en qué orden...
Código MySQL:
Ver original
  1. LOAD DATA LOCAL INFILE 'ddjj.csv'
  2. INTO TABLE DDJJ
  3.     (`cuit_ddjj`, `periodo_ddjj`, `cuil_ddjj`, `ape_nom_ddjj`, `afili_ddjj`,
  4.      `basico_ddjj`, `bruto_ddjj`, `aporte_ddjj`, `cct_ddjj`, `observacion_ddjj`)
Otra cosa es que tienes mal definidos los tipos de dato numéricos:
1) No pongas esos valores entre paréntesis, como BIGINT (10). Eso no es lo que supones, no especifica la longitud de la cifra, sino la salida representable en consola, y segmenta los valores para la generación de vistas. Puede producir errores indetectables.
2) Un ID numérico siempre debe ser UNSIGNED, no existen los ID negativos (¿o alguna vez viste un documento con umero negativo?).
3) Los valores DECIMAL sólo alcanzan a 4 enteros y 2 decimales... ¿Estás seguro de que te sirve. Es decir, sólo pueden representar como mucho el numero 9999,99.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 23/04/2013, 13:29
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Importar csv a mysql desde phpMyAdmin

Hola,
Me inserta solo el campo cuit_ddjj, todos los demas los inserta en 0.

Con respecto a lo otro modifique los valores que aparecen en parentesis. No les ingreso ninguno pero me toma valores por defecto.
En cuanto a los decimales el monto puede ser mayor a 9999.99 por eso le puse esa cantidad.
Y modifique el ID poniendole UNSIGNED.
la tabla me quedo asi
Código MySQL:
Ver original
  1. CREATE TABLE `ddjj` (
  2.  `cuit_ddjj` bigint(11) NOT NULL,
  3.  `periodo_ddjj` int(11) NOT NULL,
  4.  `cuil_ddjj` bigint(11) NOT NULL,
  5.  `ape_nom_ddjj` varchar(50) NOT NULL,
  6.  `afili_ddjj` int(1) NOT NULL,
  7.  `basico_ddjj` decimal(7,2) NOT NULL,
  8.  `bruto_ddjj` decimal(7,2) NOT NULL,
  9.  `aporte_ddjj` decimal(7,2) NOT NULL,
  10.  `cct_ddjj` int(1) NOT NULL,
  11.  `observacion_ddjj` varchar(30) NOT NULL,
  12.  PRIMARY KEY (`id_ddjj`)
__________________
Nico...
  #12 (permalink)  
Antiguo 23/04/2013, 13:46
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: Importar csv a mysql desde phpMyAdmin

La verdad... ¿has leído el link que te pasé?

Verifiquemos, si el problema es de separadores y fines de línea.
Voy a suponer que los valores están separados por comas y las líneas son saltos de línea:
Código MySQL:
Ver original
  1. LOAD DATA LOCAL INFILE 'ddjj.csv'
  2. INTO TABLE DDJJ
  3.     LINES TERMINATED BY '\n'
  4.     (`cuit_ddjj`, `periodo_ddjj`, `cuil_ddjj`, `ape_nom_ddjj`, `afili_ddjj`,
  5.      `basico_ddjj`, `bruto_ddjj`, `aporte_ddjj`, `cct_ddjj`, `observacion_ddjj`)
Si esto falla, deberás postear un segmento del archivo, pero no copiandolo de tu script en SQL, sino del mismo CSV. Porque entonces podría haber un error de datos que no vemos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 23/04/2013, 14:00
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Importar csv a mysql desde phpMyAdmin

Gracias por tu tiempo!
Ahora si subio todo. Muchas gracias.

Lo del link lo lei, pero ya estoy quemadisimo con esto! ja! hace dias que intentaba esto. Lo que hace la falta de experiencia...

Muchas gracias
__________________
Nico...
  #14 (permalink)  
Antiguo 23/04/2013, 14:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Importar csv a mysql desde phpMyAdmin

Llegué tarde (afortunadamente, se resolvió todo). Pido la eliminación del post.

Etiquetas: csv, phpmyadmin, registros, tabla
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:27.