利用load data将文件中的数据导入数据库表中的时候,遇到了两个问题。
首先是load data命令无法执行的问题:
命令行下输入load data local infile "path/filename" to table table_name;
系统提示:ERROR 1148 (42000): The used command is not allowed with this MySQL version。
解决方法:退出mysql, 重新以此命令登录mysql
mysql -u root -p --local-infile=1 (local-infile=1代表允许使用local infile 参数), 之后在进行文件数据导入
第二个问题是文件中的一行数据导入表中后,没有分离字段,整一行数据都加到了表中的第一个字段下。
根据mysql文档上load data命令讲解,如果导入数据时不加fields terminated by 'string' 参数,那么其默认是以制表符分离每个字段。我的数据一行有三列
张三 32岁 北京中南海人
我以Tab分隔每列数据,但是导入数据后,这一行数据全在name字段下
解决方法: 更改一个fields 结束标记。
load data local infile "path/file" to table table_name fields terminated by ":";
还没有搞清楚为什么默认的分离标记不成功。 注意,有时候你可能会规定导入的字段名称,eg load data local infile "path/file" to table table_name(name, age) fields terminated by ":", 此时会出现语法错误,就是因为规定字段引起的。