mysql 导入txt文档的问题

来源:互联网 发布:网络视频服务器使用 编辑:程序博客网 时间:2024/04/30 21:57
学习总结基本的MySQL数据库导入导出操作

   在进行txt格式数据导入到mysql时,遇到了很严重的问题,首先创建了格式相同的数据库表,然后我们进行数据导入,发现遇到错误: ERROR 1148 (42000): The used command is not allowed with this MySQL version.   当时很费解,以为是这个版本不支持,但是后来想想发现,旧版本支持,新版本不可能不支持吧?软件应该还是普片具有向下兼容的。然后到stackoverflow上面发现是没有进行启动,默认是进行关闭的。下面将基础只是罗列一下。

mysql --local-infile -uroot -pyourpwd yourdbname


 1 表tt的格式:

CREATE TABLE `tt` (
`ind` int NOT NULL auto_increment,
`name` char(100) default NULL,
PRIMARY KEY (`ind`)
)

2 文件d.txt的内容示例:
1,a
2,b
3,c

3 导入命令:
mysql> load data infile 'd.txt' into table tt
-> fields terminated by','
-> lines terminated by'\r\n'

注意的地方:
1)、文件可以使用绝对路径如'c:/d.txt',否则请将文件放在数据库根目录中
2)、因为字段之间用了逗号隔开,所以必须fields terminated by',',否则导入失败
3)、因为Winsows中行以“\r\n”隔开,所以必须lines terminated by'\r\n',
如果不设置这个参数,也可导入成功,但是会多导入一个“\r”控制字符,可能在可视化
MySQL工具中看不出字段异样,但是在MySQL命令行中显示会明显混乱。
4)、如果表tt非空,且文件中的ind值在表中有重复,会提示错误,并导入失败。

只导入name字段,文件d.txt的内容:
a
b
c

mysql> load data infile 'd.txt' into table tt
-> lines terminated by'\r\n'
-> (name);

load data 命令还支持更复杂的文本格式、文件编码等,可参考官方文档。

5 导出到数据到windows文本文件时,为了方便查看,也需要相同的设置
mysql> select * from tt into outfile 'd.txt'
-> fields terminated by','
-> lines terminated by'\r\n'


参考资料: http://stackoverflow.com/questions/10762239/mysql-enable-load-data-local-infile

0 0
原创粉丝点击