SQL请问,防治插入重复值
SQL请教,防治插入重复值
我在一个存储过程中,读取表DB主键A,A按规则生成B后,把B插入到表DB中。
现在我这个存储过程,在程序中会被频繁的调用。
如何防止插入重复值报错?加锁能否解决?
------解决思路----------------------
既然是存储过程,可以开启事务,保证数据的完整性
存储过程使用事务,参考以下
http://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737298.html
------解决思路----------------------
事务指保证一次数据插入操作的完整性,我理解这里是不希望向数据库中插入相同的记录,不知是否理解准确。
------解决思路----------------------
加事务保证一致,插入A时插入B,这样B就不会重复了。
另外表A与B做级联更新删除这样就保证两个表一致
------解决思路----------------------
你这个就相当于生成单据号吧?每次去记录中的最大值,再加1生成新的单据插入表中。
这个真的要求隔离级别高,序列化执行。但是并发就多的话堵塞很严重。
除非每个客户都有自己的记录。
我在一个存储过程中,读取表DB主键A,A按规则生成B后,把B插入到表DB中。
现在我这个存储过程,在程序中会被频繁的调用。
如何防止插入重复值报错?加锁能否解决?
------解决思路----------------------
既然是存储过程,可以开启事务,保证数据的完整性
存储过程使用事务,参考以下
http://www.cnblogs.com/RascallySnake/archive/2010/05/17/1737298.html
------解决思路----------------------
事务指保证一次数据插入操作的完整性,我理解这里是不希望向数据库中插入相同的记录,不知是否理解准确。
------解决思路----------------------
加事务保证一致,插入A时插入B,这样B就不会重复了。
另外表A与B做级联更新删除这样就保证两个表一致
------解决思路----------------------
你这个就相当于生成单据号吧?每次去记录中的最大值,再加1生成新的单据插入表中。
这个真的要求隔离级别高,序列化执行。但是并发就多的话堵塞很严重。
除非每个客户都有自己的记录。