【问题标题】:import csv file with data to mysql将带有数据的csv文件导入mysql
【发布时间】:2013-05-08 21:39:45
【问题描述】:

我正在尝试将 csv 文件导入 MYSQL,并且我有以下架构。

CREATE TABLE `monitor` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`time` time DEFAULT NULL,
`domain_name` text,
`cpu_ns` int(11) DEFAULT NULL,
`cpu_percentage` int(11) DEFAULT NULL,
`mem_bytes` int(11) DEFAULT NULL,
`mem_percentage` int(11) DEFAULT NULL,
`block_rdby` int(11) DEFAULT NULL,
`block_wrby` int(11) DEFAULT NULL,
`net_rxby` int(11) DEFAULT NULL,
`net_wrby` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

我在导入包含如下数据的文件时遇到问题。

16:48:27,2,s-1-VM,220000000.,0.448204684384,262144,0,0,0,60,0
16:48:30,2,s-1-VM,260000000.,0.528932926209,262144,0,0,16384,300,0
16:48:33,2,s-1-VM,300000000.,0.609786677944,262144,0,0,0,180,0
16:48:37,2,s-1-VM,290000000.,0.59000206364,262144,0,0,16384,120,0
16:48:40,2,s-1-VM,270000000.,0.54985661784,262144,0,0,0,649,425
16:48:43,2,s-1-VM,310000000.,0.631207212346,262144,0,0,0,180,0
16:48:46,2,s-1-VM,220000000.,0.44728232907,262144,0,0,20480,60,0
16:48:49,2,s-1-VM,200000000.,0.407008216196,262144,0,0,0,300,0
16:48:52,2,s-1-VM,250000000.,0.508946559213,262144,0,0,0,240,0
16:48:55,2,s-1-VM,240000000.,0.488674160215,262144,0,0,0,120,0

如何将其导入我的数据库?

我尝试了以下方法,但收到很多警告。

LOAD DATA LOCAL INFILE '/tmp/domain2.csv' INTO TABLE vtop  FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

非常感谢您的帮助。

谢谢

【问题讨论】:

    标签: mysql database csv


    【解决方案1】:

    如果我对 http://dev.mysql.com/doc/refman/5.1/de/load-data.html 的理解正确,您应该通过

    将 ID 设置为 null(使其成为 auto_increment)
    "SET id=NULL " 
    

    在语句的末尾。否则列数和列顺序必须完美匹配。

    但是您的列根本不匹配(位置 2 的“2”是什么?)。因此,使用 CSV 的结构创建一个临时表,然后通过插入分配到...选择匹配的列。

    【讨论】:

    • 我还不知道列出其他答案中给出的列名的可能性,请注意奇怪的第二列,如果表中不需要它,则将其放入变量中像 dummy1,像 (time, @dummy1, domain_name, cpu_ns...)
    • 您对 ID 以及列和架构中的错误是正确的!非常感谢你!
    【解决方案2】:

    MySQL 不是 AI,无法确定 16:48:27 应该进入 time 字段 - 它会尝试将其填充到 id 中。

    您需要将 CSV 文件中的列显式映射到它们应该进入表中的字段:

    LOAD DATA .... (time, domain_name, x, y, z, foo, bar) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 2014-12-19
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多