假设某个表中,Name字段不能重复,而且只要求增加时不增加重复的就行,那么以下两种方法
1. 按Name字段搜索,如果Count(*)<0,则不执行insert操作。Name字段可能设置了索引,也可能没设置
2. Name字段设置唯一索引,然后直接
try { insert} catch (sqlexception) {判断是不是违反唯一性索引} finally
又分两种情况
1. 表中记录一般小于100条
2. 表中记录大于1W条或者为10W条之类 是先判断再插入 还是 用异常捕捉的 效率高?
1. 按Name字段搜索,如果Count(*)<0,则不执行insert操作。Name字段可能设置了索引,也可能没设置
2. Name字段设置唯一索引,然后直接
try { insert} catch (sqlexception) {判断是不是违反唯一性索引} finally
又分两种情况
1. 表中记录一般小于100条
2. 表中记录大于1W条或者为10W条之类 是先判断再插入 还是 用异常捕捉的 效率高?
insert ttt ......的。这是比较清晰、也符合简单高效相平衡的原则的写法。
1.业务逻辑:程序员必须实现这个业务逻辑,实现断言,并UI提示;
2.由于并发问题,存在insert的时候违反约束的情况(不仅仅是你说的name字段)
而这种特定的异常也是设计者能够预见的,应该在异常处理中心的过滤器拦截这个特定的异常,并UI提示,
这些工作是架构师事先就设计好的底层支持,不该让程序员为此编写任何代码