目的:利用LOAD DATA LOCAL INFILE方式,将数据从txt文件导入数据到mysql。
过程描述:
txt文件生成部分的代码如下(c#,这段主要是说明我这个txt的内部格式):
StreamWriter writer = new StreamWriter( "d:\\record.txt", false, Encoding.GetEncoding("gb2312"));
for (int row = 0; row < dataTable.Rows.Count; row++)
for (int col = 0; col < dataTable.Columns.Count; col++)
writer.WriteLine(dataTable.Rows[row][col].ToString() + "\t");
writer.Close();
(说明: dataTable里是从数据库查出来的数据)
生成的d:\\record.txt格式如下:
217
冰火霜剑
3237866
2012-11-28 14:39:45
00010100011100100101100000.....(此字段是个二进制字段)
mysql数据库中,表deletehistory 结构如下,没有自增:
现在要把文本 d:\\record.txt 中的数据 添加到表deletehistory 里。
新建查询,输入以下语句:
LOAD DATA LOCAL INFILE 'D:\\record.txt' into table deletehistory fields terminated by '/r/n'
或者:
LOAD DATA LOCAL INFILE 'D:/record.txt' into table deletehistory fields terminated by '/r/n'
运行即可成功。
注意:路径中不要出现中文字符,不然会报错。
如:LOAD DATA LOCAL INFILE 'D:工程代码\工具项目\GameTools\Debug\record.txt' into table deletehistory fields terminated by '/r/n' 就不行