在测试时发现有的表用MySqlBulkLoader一直加不上数据,通过检查,原来是由于表中的列名跟MYSQL的一个关键词对上了,因此在执行时把列名当作关键词进行处理了。测试
LOAD DATA LOCAL INFILE ':STREAM:364a6d1293584ac4afdaf58a30adc9d2' INTO TABLE test_table CHARACTER SET utf8mb4 FIELDS TERMINATED BY '|' LINES TERMINATED BY ' ' (id,name,type,Range)
若是不指定列名则是:spa
LOAD DATA LOCAL INFILE ':STREAM:364a6d1293584ac4afdaf58a30adc9d2' INTO TABLE test_table CHARACTER SET utf8mb4 FIELDS TERMINATED BY '|' LINES TERMINATED BY ' '
这样也是能够正常插入的。code
可是若是想指定列名的话,就须要对列名进行处理:blog
MySqlBulkLoader bulk = new MySqlBulkLoader(connection) { FieldTerminator = ",", CharacterSet = "utf8mb4", //FieldQuotationCharacter = '"', //EscapeCharacter = '"', LineTerminator = Environment.NewLine,//"\r\n", FileName = @"D:\TestData\test2.csv", NumberOfLinesToSkip = 0, TableName = "test_table", }; for (int i = 0; i < columns.Count(); i++) { var oneColumns = columns[i]; columns[i] = $"`{oneColumns}`"; } bulk.Columns.AddRange(columns); return bulk.Load();
主要是将列名用"`"号包起来就能够了。ip