我正在处理一些大型数据集,我正在使用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中的第一列写入数据库的第一列。所以我需要能够:
谢谢,感谢您的协助。
答案 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函数。默认情况下,该函数不允许设置列,因为列列表是只读的。但我修改了函数以允许设置列名。一旦进行了修改,系统就会将数据写入正确的列,并保持时间戳。