0

我正在处理一些海量数据集,并且正在使用 MySQLBulkLoader 将数据导入我的数据库。但是,我遇到了 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 中的第一列写入数据库的第一列。所以我需要能够:

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

谢谢,感谢您的帮助。

4

1 回答 1

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

于 2013-08-07T09:02:30.043 回答