2013年5月7日火曜日

データ例を読み込む

Original post: http://anothermysqldba.blogspot.com/2013/05/load-data-example.html

私は約最近の質問を見た負荷データforums.mysql.com私は同様にここに私の解決策の例を投稿だろうと思ったので、サイトを。 


問題になっているユーザーはスキップされた行、無警告の多くを得ていた。 また、ユーザは、ヘッダー行をスキップしたいと思い、私はそれが輸入されたとして、いくつかのフィールドを設定しますと仮定します。 私は、関連データまたはスキーマのいずれかを見ていないので、私はちょうど次の作業例を投稿しました:


CREATE TABLE `example` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`Column2` varchar(14) NOT NULL,
`Column3` varchar(14) NOT NULL,
`Column4` varchar(14) NOT NULL,
`Column5` DATE NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB

Column1   Column2   Column3   Column4   Column5
 A   Foo   sdsdsd   4/13/2013
 B   Bar   sdsa   4/12/2013
 C   Foo   wewqe   3/12/2013
 D   Bar   asdsad   2/1/2013
 E   FOObar   wewqe   5/1/2013

# more /tmp/example.csv
Column1,Column2,Column3,Column4,Column5
1,A,Foo,sdsdsd,4/13/2013
2,B,Bar,sdsa,4/12/2013
3,C,Foo,wewqe,3/12/2013
4,D,Bar,asdsad,2/1/2013
5,E,FOObar,wewqe,5/1/2013

> LOAD DATA LOCAL INFILE '/tmp/example.csv'
-> INTO TABLE example
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\n'
-> IGNORE 1 LINES
-> (id, Column2, Column3,Column4, @Column5)
-> set
-> Column5 = str_to_date(@Column5, '%m/%d/%Y');
Query OK, 5 rows affected (0.04 sec)
Records: 5 Deleted: 0 Skipped: 0 Warnings: 0

> select * from example;
+----+---------+---------+---------+------------+
| Id | Column2 | Column3 | Column4 | Column5 |
+----+---------+---------+---------+------------+
| 1 | A | Foo | sdsdsd | 2013-04-13 |
| 2 | B | Bar | sdsa | 2013-04-12 |
| 3 | C | Foo | wewqe | 2013-03-12 |
| 4 | D | Bar | asdsad | 2013-02-01 |
| 5 | E | FOObar | wewqe | 2013-05-01 |
+----+---------+---------+---------+------------+
5 rows in set (0.00 sec)