在 PHP 中,当使用以下命令将一批记录插入数据库时一个独特的字段,最好忽略重复的输入错误。相反,您希望确保仅插入新记录而不会出现任何中断。
在插入之前执行 SELECT 查询来检查现有条目并不是一种有效的方法。以下是使用 MySQL 内置功能的替代方法:
INSERT... IGNORE:
此语法允许您插入一条记录并如果重复项已存在,请忽略它。不会引发任何错误。
INSERT IGNORE INTO tbl (field1, field2, ...) VALUES (...);
REPLACE INTO:
如果主键存在,此语法将使用新记录覆盖现有记录匹配。如果主键不唯一,则会引发错误。
REPLACE INTO tbl (field1, field2, ...) VALUES (...);
INSERT... ON DUPLICATE KEY UPDATE:
This语法插入新记录或执行更新(如果重复主键)找到。
INSERT INTO tbl (field1, field2, ...) VALUES (...) ON DUPLICATE KEY UPDATE field2 = NEW.field2;
假设一个名为 'tbl' 的表,其中包含 'id' 和 'value' 列,最初包含一条 'id' = 的记录1 和“值”= 1:
替换为:
REPLACE INTO tbl (id, value) VALUES (1, 50);
结果:用 'value' = 50 覆盖现有记录。
插入忽略:
INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
结果:忽略重复条目,因为“id”1 已存在。
在重复键上插入...更新:
INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
结果:由于“id”1 已存在,因此将现有记录更新为“value”= 200。
以上是如何在 PHP 中高效处理 MySQL 插入期间的重复条目?的详细内容。更多信息请关注PHP中文网其他相关文章!