【问题标题】:(MySQL) Load data infile specific columns(MySQL)在文件特定列中加载数据
【发布时间】:2015-03-18 10:27:47
【问题描述】:

我在将数据加载到表的特定列时遇到问题。 CSV 文件是动态构建的,默认字段 ID、LAST_REFRESH、ALIAS1 和 可能包含 ALIAS2 到 ALIAS8。当前 CSV 仅包含 ALIAS1-4

MySQL 表包含列 ID、LAST_REFRESH、ALIAS1-ALIAS8。 我的第一个文件的代码已经失败。变量设置后的代码为:

LOAD DATA LOCAL INFILE 'C:\\temp\\\OSS001'
INTO TABLE REJECTS (ID, REFRESH_DATE, ALIAS1, ALIAS2, ALIAS3, ALIAS4)
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES

但不幸的是我仍然收到以下错误:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'FIELDS TERMINATED BY',' 附近使用的正确语法 可选地由 '"' 包围 以“\n”结尾的行

有人知道我做错了什么吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    必须最后指定列名。阅读更多关于它的信息here

    LOAD DATA LOCAL INFILE 'C:\\temp\\\OSS001'
    INTO TABLE REJECTS 
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    (ID, REFRESH_DATE, ALIAS1, ALIAS2, ALIAS3, ALIAS4, ALIAS5, ALIAS6, ALIAS7, ALIAS8)
    

    【讨论】:

    • 我认为您可能必须在应用程序逻辑中捕捉到这一点。不在数据库层。
    • 已经做到了。我在应用程序中添加了一个变量 group_concats 别名字段:)
    【解决方案2】:

    删除列:

    LOAD DATA LOCAL INFILE 'C:\\temp\\\OSS001'
    INTO TABLE REJECTS FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-10
      • 2018-07-05
      • 2016-01-09
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      相关资源
      最近更新 更多