为防止数据库中出现重复的表条目,我使用主键。我只是添加信息,如果它是重复的,那么主要是重复的,它不会添加到表中。
我是否还应该在尝试添加到数据库之前执行SQL查询以查看条目是否存在?或者这是多余的,因为我已经设置了主键?
答案 0 :(得分:5)
如果您已经有一个约束来防止重复,则检查是否存在值是多余的。
但是在插入之前检查它也是无效的,因为其他一些并发客户端可能会在您的检查和插入之间插入该值。因此,即使您先检查,您仍然需要处理重复的密钥错误。
答案 1 :(得分:1)
在具有所需列的表上定义“唯一约束”将修复所有内容。如果有一个重复,你会得到错误。
答案 2 :(得分:0)
对于大多数数据库平台,当您创建主键时,如果存在重复的条目,操作将失败,因此不需要事先对此进行测试。
答案 3 :(得分:0)
通常,您会从SQL引擎调用中获得异常或错误代码。如果您需要处理,取决于您的应用程序逻辑。例如,如果它是一个新的用户名,并且它已经存在于数据库中,则异常是您应用程序逻辑的一部分,您将向新用户提供有关注册失败原因的消息。