防止重复的数据库表条目

时间:2010-08-30 18:13:04

标签: database

为防止数据库中出现重复的表条目,我使用主键。我只是添加信息,如果它是重复的,那么主要是重复的,它不会添加到表中。

我是否还应该在尝试添加到数据库之前执行SQL查询以查看条目是否存在?或者这是多余的,因为我已经设置了主键?

4 个答案:

答案 0 :(得分:5)

如果您已经有一个约束来防止重复,则检查是否存在值是多余的。

但是在插入之前检查它也是无效的,因为其他一些并发客户端可能会在您的检查和插入之间插入该值。因此,即使您先检查,您仍然需要处理重复的密钥错误。

答案 1 :(得分:1)

在具有所需列的表上定义“唯一约束”将修复所有内容。如果有一个重复,你会得到错误。

答案 2 :(得分:0)

对于大多数数据库平台,当您创建主键时,如果存在重复的条目,操作将失败,因此不需要事先对此进行测试。

答案 3 :(得分:0)

通常,您会从SQL引擎调用中获得异常或错误代码。如果您需要处理,取决于您的应用程序逻辑。例如,如果它是一个新的用户名,并且它已经存在于数据库中,则异常是您应用程序逻辑的一部分,您将向新用户提供有关注册失败原因的消息。