Como se listam os avisos do utilitário 'mysqlimport'?

26

Para começar, não se trata de carregar dados a partir do próprio MySQL, mas usando a ferramenta de linha de comando "mysqlimport".

Estou usando para carregar um CSV diretamente em uma tabela e preciso ver os avisos gerados. Eu não consigo obter avisos para exibir com verbosidade nem depuração ativada. Alguma ideia?

(MySQL 5.0.5)

    
por brink 21.12.2009 / 18:47

3 respostas

28

Não é possível com o mysqlimport, mas como alternativa você pode fazer o seguinte:

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

Substitua listOfColumnNames por uma lista de colunas separadas apropriada.

A mágica é (como Eduard mencionou anteriormente) é executar os comandos LOAD DATA INFILE e SHOW WARNINGS juntos na mesma sessão, pois o mysqlimport não fornece uma maneira de obter os avisos diretamente.

    
por 21.12.2009 / 20:25
4

Como os outros disseram, o problema real é que para SHOW WARNINGS funcionar você tem que estar na mesma sessão conectada. O mysqlimport desconecta-se da sessão assim que a importação é finalizada, tornando impossível a captura de seus avisos em sua versão atual. Parece uma oportunidade de doar um patch. :)

    
por 12.01.2011 / 23:03
1

Também não encontrei nenhuma maneira de imprimir avisos com o mysqlimport. Mas como o mysqlimport não faz nada além de "LOAD DATA INFILE", por que você não usa o comando mysql para importar os dados seguidos por um "SHOW WARNINGS"?

    
por 21.12.2009 / 19:58