我有一个MySQL表,其中第1列是主键的模式。 我有一个tsv文件,我需要在此表中插入。现在,tsv重复了主键,因此当我尝试在MySQL表中插入它时会出现错误
ERROR 1062 (23000): Duplicate entry '107664521128181760' for key
'PRIMARY'
如果主键值已经存在,有没有办法,那么它应该忽略并进一步移动以进行下一次插入。
答案 0 :(得分:2)
您可能正在寻找 INSERT IGNORE INTO 命令。
您可以尝试这样:
INSERT IGNORE INTO yourtablename(col1,col2...)
values(val1,val2,...)
答案 1 :(得分: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,...)
答案 2 :(得分:0)
您可能正在寻找REPLACE
查询。
REPLACE INTO Users (Phone, Name, Email) VALUES ( Phone, Name, Email);