为了防止重复的用户名被输入数据库并通知用户,在插入之前插入或选择查询时使用异常捕获是更标准/首选吗?
>异常捕获:如果我尝试插入用户输入并且用户名已经存在,则sql数据库将抛出主键约束违例异常.如果发生这种情况我会抓住它并做任何事情.
>选择查询:如果它返回任何与用户名匹配的元组,那么我不会打扰插入.然后我可以显示错误消息.
我想在这里使用Exceptions的主要优点是查询和行数较少(速度更快?).但是,我不认为这是一个例外情况,因为重复可能经常发生.
解决方法:
至少,您应该使用选项1 – 处理主键约束违规 – 如果可能,因为数据库是最后一个入口点.如果检查代码中的重复项(尽管非常不可能),仍然可以进行复制,因为在返回初始SELECT和发回INSERT语句之间存在延迟,而另一个用户可能在该时间窗口中执行了相同的插入.
但是,首先运行select以查看记录是否存在可能更有效,而不是盲目地让插入每次都运行.
所以我会推荐两者.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。