文件夹批量导入多个txt文件到mysql及问题解决
来源:互联网 发布:pc手机微信三合一源码 编辑:程序博客网 时间:2024/05/01 13:16
很多时候需要从一个文件夹导入多个格式已经固定的txt文件到mysql数据库的一个表中,解决办法分为 “导入一个txt文件到mysql”和“导入多个txt文件”两个步骤。
1:导入一个txt文件到mysql
在test数据库建立user表,编码格式为utf-8.
建表语句:
CREATE TABLE user ('username' varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,'pwd' varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL )ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciROW_FORMAT=COMPACT;
要导入的txt文件:user.txt;文件的字段以Tab分隔。
导入代码:
load data infile "文件路径" into table 表名;
示例如下:
mysql \bin\mysql -u root -ppassworduse test;load data infile "D:/test/user.txt" into table user;
如果以|或,作为分隔符,导入代码为:
load data infile "文件路径" into table 表名 fields terminated by '|'; 或','
错误:
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 ‘user’ at line 1
解决方法:
mysql --local-infile -u root –ppasswordload data local infile " D:/test/user.txt " into table user;
错误:
ERROR 1300 (HY000): Invalid utf8 character string: ”,因为有中文字符。
解决方法:
(1)将txt改为utf-8格式
(2)执行语句:
load data local infile " D:/test/user.txt " into table user;
即可导入成功。
2:导入多个txt文件
想要批量导入txt文件,可以将通过批处理文件执行多条导入语句完成。
(1)制作sql语句文件,可采用多种编程语言获取要导入的txt文件名称制成sql命令。
这里采用python完成,建立python文件create_sql.py,示例代码:
import globwriteFile = open(' D:/result /user_sql.txt','w')writeFile.write('use test;\n')for filename in glob.glob(r' D:/test /*.txt'):writeFile.write('load data local infile '+'"'+filename.replace('\\','/')+'"'+' into table user;\n')writeFile.close()
这样就将test文件夹下的所有要导入的txt文件名称制作成sql语句放在user_sql.txt中,内容大致如下:
use test;load data local infile " D:/test/user.txt" into table user;load data local infile " D:/test/user2.txt" into table user;load data local infile " D:/test/user3.txt" into table user;……
(2) 制作.bat批处理文件执行(1)生成的sql命令文件。
若.bat文件放在桌面,其内容示例如下:
python D:\python\create_sql.pymysql--local-infile -u root –ppassword < D:/result /user_sql.txtpause
目的是为了先执行.py文件生成sql命令文件,再执行sql命令导入所有的文件。
运行.bat文件即可向mysql导入全部的txt文件。
- 文件夹批量导入多个txt文件到mysql及问题解决
- mysql批量导入txt文件数据
- txt文件导入到mysql中
- mysql导入及导出txt文件
- txt导入到mySQL
- mysql批量导入txt时之操作文件得到命令
- Matlab 批量导入txt文件
- Python 批量合并多个txt文件
- txt文件导入mysql
- txt文件导入mysql
- MySQL导入txt文件
- txt文件导入mysql
- txt文件导入mysql
- txt文件导入mysql
- txt文件导入mysql
- txt文件导入mysql
- txt文件导入mysql
- txt文件导入mysql
- VTK-7.1.0/Examples/Medical/Medical4例子运行
- (三) Maven多模块项目之间依赖配置
- 图论
- ubuntu中将java环境由安装版的openjdk替换为tar版的jdk
- 前缀、中缀、后缀表达式(待续···)
- 文件夹批量导入多个txt文件到mysql及问题解决
- Jmeter注意事项
- 常用的linux命令
- Memory Management (1)PEI 信息建立
- 《项目管理利器Maven》学习(一):Maven概述及搭建Maven开发环境
- c++bytebuffer留着用,要不每次要写或者找
- substring()在JAVA,C#,SQL中的区别
- 自定义注解(java的API)
- Windows server 2008 R2 服务器系统安全防御加固方法