mysql bulk_Mysql的批量导入类 MySqlBulkLoader

在mssqlserver 中 对应的SqlBuckCopy类,进行批量数据插入。

在mysql 中,官方提供了MySqlBulkLoader 平行的工具;

不过里面有坑,具体坑是插入空值列 NULL的。

For input, if the FIELDS ESCAPED BY character is not empty, occurrences of that character are stripped and the following character is taken literally as part of a field value. Some two-character sequences that are exceptions, where the first character is the escape character. These sequences are shown in the following table (using \ for the escape character). The rules for NULLhandling are described later in this section.

CharacterEscape Sequence

\0

An ASCII NUL (X‘00‘) character

\b

A backspace character

\n

A newline (linefeed) character

\r

A carriage return character

\t

A tab character.

\Z

ASCII 26 (Control+Z)

\N

NULL

在 MySql.Data.dll 提供的驱动中,使用 \N  字符并未将NULL列插入。应该使用关键词 NULL  进行空值的代表。

//tran = conn.BeginTransaction();

MySqlBulkLoader bulk = new MySqlBulkLoader(conn)

{

FieldTerminator = ",",

FieldQuotationCharacter = ‘"‘,

EscapeCharacter = ‘"‘,

LineTerminator = "\r\n",

FileName = tmpPath,

NumberOfLinesToSkip = 0,

TableName = table.TableName,

};

//bulk.Columns.AddRange(table.Columns.Cast().Select(colum => colum.ColumnName).ToArray());

insertCount = bulk.Load();

具体资料:

https://dev.mysql.com/doc/connector-net/en/connector-net-programming-bulk-loader.html

https://dev.mysql.com/doc/refman/5.7/en/load-data.html

http://blog.csdn.net/zhou2s_101216/article/details/50875211

https://dev.mysql.com/doc/refman/5.7/en/load-data.html


版权声明:本文为weixin_36362920原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。