我在文件中有一些数据,csv
我想将其插入 Mysql 表中。我的问题是如何以不向表中插入重复值的方式做到这一点。我查看了以下参考http://dev.mysql.com/doc/refman/5.1/en/load-data.html并且有一个关键字IGNORE
,但看不到如何使用它来仅插入唯一值。
问问题
1140 次
3 回答
1
添加唯一索引并使用您提到的 IGNORE :
ALTER TABLE
myTable
添加唯一的 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 回答