gpt4 book ai didi

c# - 唯一列约束,异常与数据库检查?

转载 作者:太空宇宙 更新时间:2023-11-03 20:11:38 24 4
gpt4 key购买 nike

我在表中有一列具有唯一约束。

现在一般来说,如果该列的值重复或不重复,最好检查数据库还是处理它在 try catch 中产生的异常更好?

答案是笼统的还是会有这样的情况,比如它只是一个简单的表,例如用户名列,或者表有很多列和外键。

编辑:

看完这两个答案后,我认为这件事是有争议的,因为它可能会导致数据库在预检查时出现性能问题或在捕获异常时出现代码问题,但我认为我更喜欢捕获异常,尤其是在唯一值需要更新的情况下.

最佳答案

要在尝试插入之前检查数据库,您要么最终引入竞争条件,要么取出键范围锁(这可能导致阻塞等)。无论哪种情况,它都必须在您实际插入时检查重复的无论如何,因此您纯粹是在添加工作(并且可能是额外的往返)。

它确实一点取决于重复的可能性,但在大多数情况下:这是异常(exception)情况,可能应该这样处理 - 通过数据库时的异常报告问题。但是:总会有一些情况提前检查是明智的——在这些情况下,您可以两者都做。例如,在数据输入应用程序中,只要用户在此处的键输入中输入一个值,然后跳转到下一个控件 - 您可以在后台检查数据库以验证那里还不是一个值:但是 - 您仍然需要为来自多个来源的数据不断变化这一事实做好准备 - 所以无论您如何检查,它仍然可以在您插入时是重复的。

关于c# - 唯一列约束,异常与数据库检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19703159/

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