0

我在文件中有一些数据,csv我想将其插入 Mysql 表中。我的问题是如何以不向表中插入重复值的方式做到这一点。我查看了以下参考http://dev.mysql.com/doc/refman/5.1/en/load-data.html并且有一个关键字IGNORE,但看不到如何使用它来仅插入唯一值。

4

3 回答 3

1

添加唯一索引并使用您提到的 IGNORE :

ALTER TABLEmyTable添加唯一的 idxName (myFieldA, myFieldB,myFieldC);

或在命令行上过滤 csv 文件:

排序 -u in.csv > out.csv

于 2012-10-05T19:40:16.083 回答
0

在要插入的表上添加唯一性约束或唯一索引。

于 2012-10-05T19:34:01.343 回答
0

使用一列或多列在表上添加唯一索引:

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;

您将使用忽略来跳过由于重复索引错误而出错的行。

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 回答