¿Cómo se enumeran las advertencias de la utilidad 'mysqlimport'?


28

Para empezar, no se trata de cargar datos desde MySQL, sino de usar la herramienta de línea de comandos "mysqlimport".

Lo estoy usando para cargar un CSV directamente en una tabla y necesito ver las advertencias que ha generado. Parece que no puedo obtener advertencias para mostrar con verbose ni depuración activada. ¿Algunas ideas?

(MySQL 5.0.5)

Respuestas:


31

No es posible con mysqlimport, sin embargo, como alternativa, puede hacer lo siguiente:

mysql --execute="LOAD DATA LOCAL INFILE '$WORKDIR/$table.csv' INTO TABLE $table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES (listOfColumnNames); SHOW WARNINGS"

Reemplace listOfColumnNamescon una lista separada separada de columnas.

La magia es (como mencionó anteriormente Eduard) es ejecutar los comandos LOAD DATA INFILE y SHOW WARNINGS juntos en la misma sesión, ya que mysqlimport no proporciona una forma de obtener las advertencias directamente.


Dulce gracias Acababa de comenzar a escribir una declaración como esta después de ver el comentario de Eduard. Gracias yo! Gracias
borde

¿Funciona esto si tables.csves un archivo local (es decir, no está en el servidor de la base de datos)?
Raffi Khatchadourian

lo siguiente funciona para mí crear la tabla primero y luego hacer stackoverflow.com/questions/14127529/…mysql -u root --execute="LOAD DATA LOCAL INFILE 'c:\\crp\\blah3.csv' INTO TABLE blah3 FIELDS TERMINATED BY ','; SHOW WARNINGS" whateverdbnameegcsv_db relacionado
barlop

y puede agregar, por ejemplo, sobre utf8 mysql> LOAD DATA LOCAL INFILE 'c:\\crp\\blah5.csv' INTO TABLE blah5 CHARACTER SET UTF8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; SHOW WARNINGS;como se menciona stackoverflow.com/questions/4957900/…
barlop

un problema es que el código de salida siempre es 0así, así que supongo que debe analizar el resultado del comando para verificar si la importación se realizó
correctamente

5

Como los otros dijeron, el verdadero problema es que para que SHOW WARNINGS funcione, debes estar en la misma sesión conectada. mysqlimport se desconecta de la sesión tan pronto como termina de importar, haciendo imposible la captura de sus advertencias en su versión actual. Suena como una oportunidad para donar un parche. :)


1

Tampoco he encontrado la manera de imprimir advertencias con mysqlimport. Pero dado que mysqlimport no hace nada más que "CARGAR DATOS DE ARCHIVO", ¿por qué no utiliza el comando mysql para importar los datos seguido de un "MOSTRAR ADVERTENCIAS"?


¡Gracias! Tipo de irritante mysqlimport realmente no juega bien: /
borde

Utilice el "MOSTRAR ADVERTENCIAS"; comando después de "CARGAR".
Eduard Wirch
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.