我有一个 MySQL 表,其架构中的第 1 列是主键。我有一个 tsv 文件,需要将其插入此表中。现在,tsv 重复了主键,因此当我尝试将其插入 MySQL 表时,它会出现错误
ERROR 1062 (23000): Duplicate entry '107664521128181760' for key
'PRIMARY'
如果主键值已经存在,有什么方法可以忽略并进一步移动以进行下一次插入。
我有一个 MySQL 表,其架构中的第 1 列是主键。我有一个 tsv 文件,需要将其插入此表中。现在,tsv 重复了主键,因此当我尝试将其插入 MySQL 表时,它会出现错误
ERROR 1062 (23000): Duplicate entry '107664521128181760' for key
'PRIMARY'
如果主键值已经存在,有什么方法可以忽略并进一步移动以进行下一次插入。
您可能正在寻找INSERT IGNORE INTO命令。
你可以这样尝试:
INSERT IGNORE INTO yourtablename(col1,col2...)
values(val1,val2,...)
这取决于您如何导入数据。
如果您使用的是 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,...)
您可能正在寻找REPLACE
查询。
REPLACE INTO Users (Phone, Name, Email) VALUES ( Phone, Name, Email);