我已设法使用mysqlimport
设置自动将表格导入我的数据库。
但是,无法查看任何警告的详细信息。相反,我想使用LOAD DATA INFILE
,可以添加SHOW WARNINGS
。
但我无法弄清楚如何在我的bash脚本中使用LOAD DATA INFILE
。
我就是这样做的mysqlimport
:
mysqlimport --fields-terminated-by="," --fields-enclosed-by=\" -u dbuser -ppassword databasename /tmp/customers.csv
此命令将数据导入表'customers'。
但是如何在我的bash文件中使用SHOW WARNINGS
的附加功能执行相同的操作?
感谢您的帮助。
答案 0 :(得分:1)
-e
or --execute
option到mysql
将接受以分号分隔的一个或多个查询,就像在交互式shell中一样。只需将标准LOAD DATA INFILE
查询后跟SHOW WARNINGS
。
mysql -u dbuser -ppassword -D databasename -e 'LOAD DATA INFILE "/tmp/customers.csv" INTO TABLE foo FIELDS TERMINATED BY "," ENCLOSED BY "\""; SHOW WARNINGS'
或者您也可以在标准输入上传递查询;我发现heredoc syntax更容易阅读,它避免了一个级别的引号。
mysql -u dbuser -ppassword -D databasename <<SQL
LOAD DATA INFILE '/tmp/customers.csv' INTO TABLE foo FIELDS TERMINATED BY ',' ENCLOSED BY '"';
SHOW WARNINGS;
SQL