如何从文件插入没有重复

时间:2012-10-05 19:32:54

标签: mysql

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

3 个答案:

答案 0 :(得分:1)

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

  

ALTER TABLE myTable ADD UNIQUE idxName(myFieldA,myFieldB,myFieldC);

或使用以下命令过滤命令行中的csv文件:

  

sort -u in.csv> out.csv

答案 1 :(得分:0)

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

答案 2 :(得分: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;

您可以使用ignore来跳过因重复索引错误而导致错误输出的行。

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

使用加载:

LOAD DATA INFILE 'file_name' IGNORE INTO TABLE test;