我无法找到将 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
列( ID
是 type: int(11
)和 auto_incerement
) 但其他数据偏离一列,因此 dataForCol1
丢失,dataForCol2
在 COL1
等中。 最佳答案
列列表应仅包含文件中的列:
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/