我无法找到将 csv 文件加载到表中的正确语法,同时跳过表中已存在的第一列。我的表列如下所示:

ID    COL1    COL2    COL3    LOG_DATE

我的 csv 看起来像这样:
dataForCol1,dataForCol2,dataForCol3

所以我想将 csv 中的值加载到 COL1 COL2 和 COL3 中,跳过 ID。我能得到的最接近的是像这样的 SQL:
LOAD DATA LOCAL INFILE 'test.csv'
INTO TABLE test_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(ID,COL1,COL2,COL3,LOG_DATE)
SET ID=0, LOG_DATE=CURRENT_TIMESTAMP

请注意,我不太了解 SQL,也不确定我是否正确使用了 SET 子句,但是此语句将为 LOG_DATE 列提供时间戳,并且它将自动增加 ID 列( IDtype: int(11 )和 auto_incerement ) 但其他数据偏离一列,因此 dataForCol1 丢失,dataForCol2COL1 等中。

最佳答案

列列表应仅包含文件中的列:

LOAD DATA LOCAL INFILE 'test.csv'
INTO TABLE test_table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(COL1,COL2,COL3)
SET LOG_DATE=CURRENT_TIMESTAMP

关于mysql - LOAD DATA INFILE,跳过表中的第一列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20520602/

10-16 03:36