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