Как составить список предупреждений из утилиты "mysqlimport"?
Начнем с того, что речь идет не о загрузке данных из самого MySQL, а об использовании инструмента командной строки "mysqlimport".
Я использую его для загрузки CSV непосредственно в таблицу, и мне нужно увидеть предупреждения, которые он сгенерировал. Кажется, я не могу получать предупреждения, чтобы отображать их с подробным описанием или включенной отладкой. Есть идеи?
(MySQL 5.0.5)
3 ответа
С mysqlimport это невозможно, однако в качестве альтернативы вы можете сделать следующее:
mysql --execute="LOAD DATA LOCAL INFILE '$WORKDIR/$table.csv' INTO TABLE $table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES (listOfColumnNames); SHOW WARNINGS"
замещать listOfColumnNames
с соответствующим отдельным списком столбцов.
Волшебство (как ранее упоминал Эдуард) состоит в том, чтобы одновременно выполнять команды LOAD DATA INFILE и SHOW WARNINGS в одном сеансе, так как mysqlimport не предоставляет способ напрямую получить предупреждения.
Как и другие говорили, настоящая проблема в том, что для того, чтобы SHOW WARNINGS работали, вы должны быть в одном подключенном сеансе. mysqlimport отключается от сеанса, как только он завершает импорт, что делает невозможным захват его предупреждений в его текущей версии. Звучит как возможность пожертвовать патч.:)
Я не нашел способа печатать предупреждения с помощью mysqlimport. Но поскольку mysqlimport ничего не делает, кроме "LOAD DATA INFILE", почему вы не используете команду mysql для импорта данных, за которыми следует "SHOW WARNINGS"?