gpt4 book ai didi

sql - 检查唯一性(SQL)的最佳方法是什么

转载 作者:行者123 更新时间:2023-11-29 13:15:26 26 4
gpt4 key购买 nike

我在 Java 中有一个简单的 MVC 应用程序,其中包含 db (Postgres) 和名为 users 的表,其中包含以下列:

name,email,age,birthday

功能之一:注册时,用户需提供姓名和邮箱。这两个字段在表中必须是唯一的(唯一的名称和唯一的电子邮件)

为了验证用户输入,我使用以下 sql

select * from users where email = ? or name = ?

如果查询返回一列,则用户的数据不是唯一的。

JavaMelody 的帮助下,我注意到这个查询是其他查询中最长的一个(11 毫秒)我如何加快它的速度?

顺便说一句

从官方文档来看,Postgres 不建议创建多列索引。

编辑()在答案中我已经看到我应该添加唯一约束添加捕获异常如果存在的话,但是使用我的查询我可以检查哪个参数不是唯一的

例子:

public Optional<String> isUnuque(final Users user) {
final Users dbUser = this.repository.findByEmailOrName(user.getEmail(), user.getName(),user.getSteamId());
if (dbUser != null) {
if (user.getEmail().equals(dbUser.getEmail())) {
return Optional.of("Email is not unique");
}else if(user.getName().equals(dbUser.getName())) {
return Optional.of("Name is not unique");
}
}
return Optional.empty();
}

最佳答案

您可以对数据库中的名称和电子邮件字段设置唯一约束。然后当你尝试插入时,如果它不是唯一的,它会返回一个错误。

关于sql - 检查唯一性(SQL)的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49869557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com