MySQL - Ayuda. Sintaxis correcta para LOAD DATA INFILE

   
Vista:

Ayuda. Sintaxis correcta para LOAD DATA INFILE

Publicado por Carlos carlosbermejor@hotmail.com (2 intervenciones) el 20/05/2013 11:55:59
Hola compañeros del foro.

Pues resulta que me he metido en el mundillo de las BD, y me he topado con un problemon.

Quiero importar los datos de un excel a una tabla de mi BD, y cada vez que ejecuto el codigo me salta un error que no deberia haber, ya que esta bien escrito (o eso, o medio millon de personas tienen una suerte tremenda y les funciona a todos menos a mi).

En fin, lo tipico, estoy usando mysql (phpmyadmin para ser mas precisos) y quiero llevar los datos de un hoja de calculo a un tabla.

Los requisitos es que sea mediante codigo (vamos, que nada de importaciones directas ni nada por el estilo, escribiendola sintaxis, ejecutandola y que funcione).

Para ello he realixado todas las operaciones que en otros sitios me han recomendado (y ordenado) para poder realizar la importacion.

1º: convertir el excel (.xls) a csv (el famoso separado por comas).
2º: poner este codigo en sql:

LOAD DATA INFILE `C:\Users\Usuario1\Desktop\Archivoto.csv` INTO TABLE `tablaexcel` FIELDS TERMINATED BY `;` (campo1, campo2)

Pero al ejecutar la sentencia, me salta un 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 '`C:\Users\Usuario1\Desktop\Archivito.csv` INTO TABLE `tablaexcel` FIELDS TERMINATED BY `' at line 1

Por lo visto el error se halla en el FIELDS TERMINATED BY `;` y eso que he probado poniendolo en vez de `;` poniendo `,` y aun asi no va.

¿Estoy haciendo algo mal?

De antemano gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Ayuda. Sintaxis correcta para LOAD DATA INFILE

Publicado por xve (898 intervenciones) el 20/05/2013 16:14:30
Hola Carlos, yo he realizado una simple prueba, y no he tenido ningún problema... no nos muestras el contenido de tu archivo para poder revisar, pero aquí te pongo mi ejemplo:

Desde Linux



x.csv
1
2
10;texto1
11;texto2

Instrucción mysql:
1
load data infile '/home/user/x.csv' into table `test` fields terminated by ';' (id,descripcion);


Desde Windows



x.csv
1
2
10;texto1
11;texto2

Instrucción mysql:
1
load data infile 'c:\\carpeta\\x.csv' into table `test` fields terminated by ';' (id,descripcion)

Fíjate que la ruta va entre comillas simples y lleva dos contrabarras...


La estructura de la tabla test que he utilizado es:
1
2
3
4
5
6
CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `descripcion` varchar(3000) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `descripcion` (`descripcion`(1000))
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda. Sintaxis correcta para LOAD DATA INFILE

Publicado por Carlos carlosbermejor@hotmail.com (2 intervenciones) el 20/05/2013 18:11:23
Gracias, al final lo consegui. (Al final lo que hice fue importar el csv con el phpmyadmin y ver el codigo que muestra despues).

Pero resulta que el problema (una vez solucionado lo de la dichosa coma) es que lo estoy usando en un proyecto de vb.net, y al parecer no reconoce la sentencia Load, dice que ha de comenzar con Select, Delete, Update etc, pero que no me reconoce la sentencia Load.

¿Hay alguna otra manera de hacerlo? Me refiero a que si se puede realizar una importacion (o algo similar) mediante otra sintaxis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Ayuda. Sintaxis correcta para LOAD DATA INFILE

Publicado por xve (898 intervenciones) el 20/05/2013 21:17:02
Hola Carlos, la verdad es que desconozco por completo el .NET, pero entiendo que el problema sera del conector de MySQL que estés utilizando...

como te conectas a MySQL desde .NET?

Lo que puedes hacer desde .NET, es leer el archivo .csv y crear tu los INSERT directamente a la base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar