如何使用mysqlimport导入含保留字名称的表?
使用mysqlimport导入含保留字表名的CSV文件
第三方提供了一个名为KEY.txt的CSV格式文件,使用mysqlimport导入时出现如下错误:
$ mysqlimport fooDB KEY.txt mysqlimport: Error: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'KEY' at line 1, when using table: KEY
原因是KEY属于MySQL的保留字,直接作为表名使用会触发SQL语法错误。虽然可以通过重命名文件规避,但这并非理想方案。而在MySQL客户端中使用LOAD DATA语句,给表名加上反引号就能成功导入:
mysql> LOAD DATA LOCAL INFILE 'KEY.txt' INTO TABLE `KEY`; Records: 303 Deleted: 0 Skipped: 0 Warnings: 0
要让mysqlimport自动为表名添加反引号,只需通过--table(或简写-t)参数显式指定带反引号的表名即可,执行命令如下:
mysqlimport fooDB --table='`KEY`' KEY.txt
在支持反引号解析的Shell环境下,也可以直接写:
mysqlimport fooDB --table=`KEY` KEY.txt
这样mysqlimport就会使用带反引号的合法表名执行导入操作,不会再触发语法错误。
内容的提问来源于stack exchange,提问作者Brad303
相关产品推荐
相关产品推荐

