对于 入库单 编号,自动生成时如何防止 重复生成

3次

问题描述:

对于 入库单 编号,自动生成时如何防止 重复生成,跪求好心人,别让我孤军奋战!

最佳答案

推荐答案

请参考多线程同步的机制,对这个有启发应该这样,要生成之前,先到某台机器上进行一个标记,数据库系统要锁定整个表不被更改,然后由一台机器进行独占式的数据库操作(生成编号),然后解锁,数据库系统提供给下一台计算机进行操作(也要独占的)

其他答案

请参考多线程同步的机制,对这个有启发

应该这样,要生成之前,先到某台机器上进行一个标记,数据库系统要锁定整个表不被更改,然后由一台机器进行独占式的数据库操作(生成编号),然后解锁,数据库系统提供给下一台计算机进行操作(也要独占的)

其他答案

将唯一验证和存储模块设置为synchronous属性,强制让并发操作在验证阶段变成顺序操作,虽然会有效率的损失和产生瓶颈的可能性,但是可以很好的解决并发重复问题.

其他答案

在数据库端开一个用于保存旧单据号的表,在保存时生成新的单据号,通过"事务"保证每次+1,也就是说在保存之后生成新的单据号

为你推荐