簡體   English   中英

將數據導入到mysql的csv文件

[英]import csv file with data to mysql

我正在嘗試將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';

非常感謝您的幫助。

謝謝

如果我正確理解http://dev.mysql.com/doc/refman/5.1/de/load-data.html ,您應該將ID設置為null(使其成為auto_increment)

"SET id=NULL " 

在聲明的最后。 否則列數和列順序必須完美匹配。

但你的列根本不匹配(位置2的“2”是什么?)。 因此,使用CSV的結構創建一個臨時表,然后通過插入分配到...中選擇匹配的列。

MySQL不是AI,也無法弄清楚16:48:27應該進入time字段 - 它會嘗試將其填入id而不是。

您需要明確地將CSV文件中的列映射到它們應該在表中輸入的字段:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM