3

我有一个 MySQL 表,其架构中的第 1 列是主键。我有一个 tsv 文件,需要将其插入此表中。现在,tsv 重复了主键,因此当我尝试将其插入 MySQL 表时,它会出现错误

ERROR 1062 (23000): Duplicate entry '107664521128181760' for key
'PRIMARY'

如果主键值已经存在,有什么方法可以忽略并进一步移动以进行下一次插入。

4

3 回答 3

2

您可能正在寻找INSERT IGNORE INTO命令。

你可以这样尝试:

INSERT IGNORE INTO yourtablename(col1,col2...)
values(val1,val2,...)
于 2015-04-09T18:05:44.657 回答
2

这取决于您如何导入数据。

如果您使用的是 LOAD DATA INFILE 命令,则在命令中使用 IGNORE:

LOAD DATA INFILE 'member.tsv'
IGNORE INTO TABLE tbl_member
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
(name, age);

如果您使用具有 INSERT 命令的 sql,则在 INSERT 命令中使用 INSERT IGNORE 为:

INSERT IGNORE INTO yourtablename(col1,col2...)
values(val1,val2,...)
于 2015-07-02T16:29:11.337 回答
0

您可能正在寻找REPLACE查询。

REPLACE INTO Users (Phone, Name, Email) VALUES ( Phone, Name, Email);
于 2016-08-25T15:42:54.033 回答