MySQL 在 LOAD DATA 语句后忽略 csv 文件中的字段

MySQL ignoring fields in a csv file after LOAD DATA statement

我正在为 MySQL 中的 table 加载本地 csv。 table 有 6 列(或字段),但是,在我加载数据后,只有 message_date 列被填充。换句话说,table 中的其他 5 列都是 NULL,在 LOAD DATA 运行 之后。为什么?我需要设置所有 5 列以将它们带到我的 table?

细节:当我不设置任何变量时,只需将它们全部导入为字符字段,所有列都会出现。所以它看起来像是在影响所有其他 5 列的 IGNORE 语句之后。

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/DadosBrutosEventTracks.csv'
    INTO TABLE messages
    FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (@var1, @var2, @var3, @var4, @var5, @var6)
    SET 
    message_date = STR_TO_DATE(SUBSTRING(@var3, 1, 22), "%Y-%m-%d %H:%i:%s.%f");

您只将数据加载到变量中。因此,没有数据进入任何列。将数据加载到变量中 而不是 加载到列中。

(@var1, @var2, @var3, @var4, @var5, @var6)

然后你设置一列:

SET 
message_date = STR_TO_DATE(SUBSTRING(@var3, 1, 22), "%Y-%m-%d %H:%i:%s.%f");

SET 子句中未提及其他列,因此它们没有数据。