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