【问题标题】:Upload csv file to select columns in table上传 csv 文件以选择表中的列
【发布时间】:2016-04-04 01:57:44
【问题描述】:

我有一个 CSV 文件,它有 3 列,我的表有 4 列(其中之一是我想要自动递增的 id 自动增量)。我想将 csv 中的 3 列加载到表中选定的 3 列中。

试过的代码:

LOAD DATA LOCAL INFILE 'info.csv' INTO TABLE tbl_countryip (ipstart, ipend, countrycode) FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'  ;

抛出错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 'FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'' 附近使用正确的语法

【问题讨论】:

    标签: php mysql csv load import-from-csv


    【解决方案1】:

    列列表在您的语句中的位置错误。遵循文档中的语法。

    你想要这样的东西:

      LOAD DATA LOCAL INFILE 'info.csv' 
      INTO TABLE tbl_countryip 
      FIELDS TERMINATED BY ',' ENCLOSED BY '"'
      LINES TERMINATED BY '\r\n'
      (ipstart, ipend, countrycode) 
    

    参考:http://dev.mysql.com/doc/refman/5.5/en/load-data.html

    【讨论】:

      【解决方案2】:

      按照以下步骤-

      1) 连接任何 gui,例如 sqlyog。

      2) 选择 db > 选择表 > 右键单击​​表 > 选择导入 > 使用加载导入 csv 数据...

      3) 选择除主键以外的所有列。

      4) 如果您的 csv 文件包含标题,请将 1 放入 ingnore 行选项中。

      5) 点击导入

      如果你想通过命令来做,那么命令应该如下-

      LOAD DATA LOCAL INFILE 'info.csv' INTO TABLE tbl_countryip FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (ipstart, ipend, countrycode);
      

      注意:如果您的当前目录不在 csv 文件所在的位置,那么您需要提供完整路径。

      如果您的 csv 文件包含标题行,那么您需要按照以下方式排除它-

      LOAD DATA LOCAL INFILE 'info.csv' INTO TABLE tbl_countryip FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (ipstart, ipend, countrycode);
      

      【讨论】:

      • 这是另外一种方式,他需要通过查询来实现。
      【解决方案3】:

      我从表中删除了 id 列,因此表和 csv 文件都有 3 列,然后运行 ​​load csv 命令,然后使用自动增量将 id 列插入到表中。

      【讨论】:

        猜你喜欢
        • 2015-07-30
        • 1970-01-01
        • 1970-01-01
        • 2012-10-12
        • 1970-01-01
        • 2021-08-03
        • 2018-12-09
        • 2021-01-21
        • 1970-01-01
        相关资源
        最近更新 更多