Назад | Перейти на главную страницу

Как вывести список предупреждений от утилиты mysqlimport?

Для начала, речь идет не о загрузке данных из самого MySQL, а об использовании инструмента командной строки mysqlimport.

Я использую его для загрузки CSV непосредственно в таблицу, и мне нужно видеть сгенерированные им предупреждения. Кажется, я не получаю предупреждений для отображения с включенной подробной или отладкой. Любые идеи?

(MySQL 5.0.5)

Это невозможно с 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 не делает ничего, кроме «ЗАГРУЗИТЬ ИНФАЙЛ ДАННЫХ», почему бы вам не использовать команду mysql для импорта данных, за которой следует «ПОКАЗАТЬ ПРЕДУПРЕЖДЕНИЯ»?