0

ファイルにいくつかのデータがあり、csvそれを Mysql テーブルに挿入したいと考えています。私の質問は、重複する値がテーブルに挿入されないようにする方法です。次のリファレンスhttp://dev.mysql.com/doc/refman/5.1/en/load-data.htmlを見ましたが、キーワードIGNOREがありますが、それを使用して一意の値のみを挿入する方法がわかりません。

4

3 に答える 3

1

一意のインデックスを追加し、言及した IGNORE を使用します。

ALTER TABLE myTableADD UNIQUE idxName (myFieldA, myFieldB,myFieldC);

または、コマンド ラインで csv ファイルを次のようにフィルタリングします。

sort -u in.csv > out.csv

于 2012-10-05T19:40:16.083 に答える
0

挿入先のテーブルに一意性制約または一意のインデックスを追加します。

于 2012-10-05T19:34:01.343 に答える
0

1 つ以上の列を使用してテーブルに一意のインデックスを追加します。

CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`start` VARCHAR(10) DEFAULT NULL,
`end` VARCHAR(10) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `start` (`start`,`end`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

重複インデックス エラーが原因でエラーになった行をスキップするには、ignore を使用します。

INSERT IGNORE into test (id, start, end) values (1,'test','test');

負荷の使用:

LOAD DATA INFILE 'file_name' IGNORE INTO TABLE test;
于 2012-10-05T19:40:28.630 に答える