对于前者,肯定每次会做很多的无用功,而且也无法完全避免重复的问题,但是可以使重复发生的几率大大降低。
对于后者,异常发生以后,很难直接根据异常判断出是主键重复或者唯一索引重复,也只能去执行select 的操作,假如开始出现的异常是数据库或者网络出现了问题而导致的,那么再执行 select 等操作的时候将会消耗掉很多的时间。
不知各位大侠是如何处理这个问题的?
对于前者,肯定每次会做很多的无用功,而且也无法完全避免重复的问题,但是可以使重复发生的几率大大降低。
对于后者,异常发生以后,很难直接根据异常判断出是主键重复或者唯一索引重复,也只能去执行select 的操作,假如开始出现的异常是数据库或者网络出现了问题而导致的,那么再执行 select 等操作的时候将会消耗掉很多的时间。
不知各位大侠是如何处理这个问题的?
比如有这样一张表,存放专业信息
(专业ID, 专业名称, 学校ID)
专业ID 是主键, (专业名称,学校ID)为唯一索引
如果专业名称可以修改,那么在修改专业信息的时候,在同一个学校里就可能产生专业名称相同的冲突 当然一个insert 一个update 的时候也会产生这样的问题
这样的好处是不必每次insert都执行类似这样的sql:select max(id) from...
建议参考banq的代码。