C#MySQLBulkLoader覆盖时间戳

时间:2013-07-30 11:07:35

标签: c# mysql

我正在处理一些大型数据集,我正在使用MySQLBulkLoader将数据导入我的数据库。但是我遇到了MySQLBulkLoader覆盖我自动更新的timestamp列的问题。假设我有以下结构:

Timestamp  | Name | Age | Height
--------------------------------
2011-01-01 | Jeff | 30  | 183
2012-02-03 | Bob  | 55  | 165
2016-04-05 | Sue  | 33  | 155.

我使用MySQLBulkLoader加载的数据文件是一个CSV,它只包含最后三列,如下所示:

Name,Age,Height
Jeff,30,183
Bob,55,165
Sue,33,155

我遇到的问题是CSV中的第一列写入数据库的第一列。所以我需要能够:

  • 忽略 第一列或批量插入,或
  • 批量插入子集

谢谢,感谢您的协助。

1 个答案:

答案 0 :(得分:3)

只是提供问题的答案。 My SQL函数:

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
    [REPLACE | IGNORE]
    INTO TABLE tbl_name
    [CHARACTER SET charset_name]
    [{FIELDS | COLUMNS}
        [TERMINATED BY 'string']
        [[OPTIONALLY] ENCLOSED BY 'char']
        [ESCAPED BY 'char']
    ]
    [LINES
        [STARTING BY 'string']
        [TERMINATED BY 'string']
    ]
    [IGNORE number LINES]
    [(col_name_or_user_var,...)]
    [SET col_name = expr,...]

允许通过指定列名称将数据加载到特定列中。我努力通过手动创建查询来实现此操作,但能够修改MySQLBulkLoader函数。默认情况下,该函数不允许设置列,因为列列表是只读的。但我修改了函数以允许设置列名。一旦进行了修改,系统就会将数据写入正确的列,并保持时间戳。