1

我的数据库中有一个表,其中包含我设置的 primary_key 的字符串。在添加它们之前,我需要经常检查该表中是否存在大约 1000 个“项目”,因为不能有任何重复项。结果是每个项目 2 次查询,或总共 2000 次,即 1-2 秒的额外加载时间。

如果我无论如何都尝试插入新行,而不检查重复,它不会被插入,这很好,但是 mysql 返回一个错误,这会使我的服务崩溃。

我的问题:

  1. 我可以关闭这些错误吗?
  2. 有没有比进行额外查询更好的方法来防止插入重复项?
4

2 回答 2

5

mysql 返回一个错误,导致我的服务崩溃。

实际上是您自己的代码使您的服务崩溃,因为 mysql 错误不会导致任何崩溃。

有没有更好的方法来防止插入重复项

INSERT IGNORE

于 2013-06-18T12:17:28.750 回答
5

您可以使用IGNORE关键字从插入中删除重复项:

INSERT IGNORE INTO yourTable Values (...)
于 2013-06-18T12:17:37.427 回答