【发布时间】:2019-10-31 16:58:48
【问题描述】:
我正在使用单个查询在 MySQL 表中插入 1000 条或更多记录。我正在通过 PHP 循环生成查询,如下所示:
INSERT INTO `favorite_colors` (`ID`, `person_id`, `email`)
VALUES
(1, 1, '1@yellow.com'),
(2, 1, '2@yellow.com'),
(3, 2, '2@blue.com'),
(4, 2, '2@blue.com'),
(5, 3, '1@green.com');
此数据来自一个可能有重复条目的大型 CSV 文件。如果我想在将两列插入表之前检查记录的唯一性,有什么办法吗?我不想检查循环中的每一条记录,因为我认为这不是一种有效的方法。我的数据库没有唯一约束,因此可以轻松插入重复的条目。数据库很旧并且已经有重复的条目,所以我不能只添加唯一约束。 如果任何记录已经存在,我需要一种方法来验证数据库中的这些批量记录。我需要单独显示这些已经存在于数据库中的记录。
【问题讨论】:
-
见插入忽略。有了适当的索引,就不需要“检查”任何东西
-
我的数据库中没有唯一约束,数据库可以用它来识别重复项。
-
那么,为什么不解决这个问题!?!