将CSV导入MySQL

时间:2010-06-11 19:28:40

标签: mysql csv load-data-infile

我创建了一个数据库和一个表。我还创建了我需要的所有字段。我创建了46个字段,其中一个是我的行ID。 CSV不包含ID字段,也不包含列的标题。我是所有这一切的新手,但一直试图解决这个问题。我不是在这里懒得问答案,而是寻找方向。

我正在试图弄清楚如何导入CSV但让它从第2个字段开始导入数据,因为我希望auto_increment将填充ID字段,这是我创建的第一个字段。

我没试过这些指示。有人能提供一些见解吗?

  1. CSV文件的列名必须与表格的列名相匹配
  2. 浏览所需的.csv文件
  3. 使用LOAD DATA选项
  4. 选择CSV
  5. 选中替换表格数据
  6. 结尾的字段框中,键入,
  7. 框所包含的字段中,"
  8. 框中转移的字段\
  9. 框结束的行中,auto
  10. 列名称框中,键入由,分隔的列名称,如column1,column2,column3
  11. 选中使用LOCAL关键字
  12. 编辑:

    CSV文件为32.4kb

    我的CSV的第一行是:

    Test Advertiser,23906032166,119938,287898,,585639051,287898 - Engager - 300x250,88793551,Running,295046551,301624551,2/1/2010,8/2/2010,Active,,Guaranteed,Publisher test,Maintainer test,example-site.com,,All,All,,Interest: Dental; custom geo zones: City,300x250,-,CPM,$37.49 ,"4,415","3,246",3,0,$165.52 ,$121.69 ,"2,895",805,0,0,$30.18 ,$37.49 ,0,$0.00 ,IMPRESSIONBASED,NA,USD
    

3 个答案:

答案 0 :(得分:42)

您可以在导入期间为某些列设置MySQL设置值。如果您的id字段设置为自动递增,则可以在导入期间将其设置为null,然后MySQL将为其分配递增值。尝试将这样的东西放在phpMyAdmin的SQL选项卡中:

LOAD DATA INFILE 'path/to/file.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' SET id=null;

答案 1 :(得分:17)

请查看此页面,看看它是否符合您的要求。因为你只处理一个表,所以你应该只需要它。 MYSQL LOAD DATA INFILE

例如,您可能会这样做:

LOAD DATA INFILE 'filepath' INTO TABLE 'tablename' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (column2, column3, column4);

这应该会给你一个想法。当然,可以添加更多选项,如上面的链接所示。

答案 2 :(得分:5)

如果导入文件是本地文件,请务必使用LOAD DATA LOCAL INFILE。 :)