2013-07-30 95 views
0

我正在使用一些海量数据集,我正在使用MySQLBulkLoader将数据导入到我的数据库中。但是,我遇到了MySQLBulkLoader覆盖自动更新的时间戳列的问题。为了情境假设我有以下结构:C#MySQLBulkLoader覆盖时间戳

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中的第一列写入数据库的第一列。所以,我需要能够:

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

谢谢,您的援助表示赞赏。

回答

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函数。默认情况下,该功能不允许设置列,因为列列表是只读的。但我修改了函数以允许设置列名。系统进行修改后,系统会将数据写入正确的列并保留时间戳。