• MySqlBulkLoader设置Columns时要注意的地方


    在测试时发现有的表用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) 

    如果不指定列名则是:

    LOAD DATA LOCAL INFILE ':STREAM:364a6d1293584ac4afdaf58a30adc9d2' INTO TABLE test_table CHARACTER SET utf8mb4 FIELDS TERMINATED BY '|' LINES TERMINATED BY '
    ' 

    这样也是可以正常插入的。

    但是如果想指定列名的话,就需要对列名进行处理:

    MySqlBulkLoader bulk = new MySqlBulkLoader(connection)
                    {
                        FieldTerminator = ",",
                        CharacterSet = "utf8mb4",
                        //FieldQuotationCharacter = '"',
                        //EscapeCharacter = '"',
                        LineTerminator = Environment.NewLine,//"
    ",
                        FileName = @"D:TestData	est2.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();

    主要是将列名用"`"号包起来就可以了。

  • 相关阅读:
    hdu 5726 GCD
    codeforces 982C Cut 'em all!
    codeforces 982B Bus of Characters
    codeforces 982A Row
    codeforces 983B XOR-pyramid
    codeforces 979D Kuro and GCD and XOR and SUM
    codeforces 983A Finite or not?
    codeforces 984B Minesweeper
    codeforces 979C Kuro and Walking Route
    codeforces 979B Treasure Hunt
  • 原文地址:https://www.cnblogs.com/qiywtc/p/9790741.html
Copyright © 2020-2023  润新知