MySQL Errno 121, 写或更新时发生重复键?
MySQL Errno 121是一个常见的数据库错误,经常在写或更新记录时发生。具体来说,此错误会在添加或更新数据库表中的记录时出现,当主键值重复时会提示这个错误。这个错误的意思是说,该记录的主键值与数据库中的现有记录重复了,所以该记录无法添加或更新。下面将介绍如何解决这个问题。
阅读更多:MySQL 教程
解决Errno 121的方法
发生Errno 121错误的主要原因是在MySQL表中使用了重复的主键。解决这个问题的方法之一是使用 REPLACE INTO 或 INSERT IGNORE 语句替代 INSERT…ON DUPLICATE KEY UPDATE 语句。
- 使用REPLACE INTO语句
REPLACE INTO 可以理解为插入或更新语句,如果表中存在该条记录,那么就更新它的值;如果不存在记录,则插入新的记录。如下图所示:
REPLACE INTO `table_name` (`column_name`) VALUES ('value');
- 使用INSERT IGNORE语句
INSERT IGNORE可以忽略插入时遇到的错误,包括 Errno 121。如果插入的记录有冲突,它将忽略这个错误,继续插入表中的其余记录。如下图所示:
INSERT IGNORE INTO `table_name` (`column_name`) VALUES ('value');
总结
以上这些方法可以解决MySQL Errno 121错误。值得注意的是,在更新或插入数据库表时,一定要使用唯一的主键值。如果你在运行MySQL时遇到这种错误,按照上述方法进行操作,你应该可以很快地解决问题。