如何避免手工编号重复

将编号字段设置成主键或唯一键.(如果无法设置成主键或唯一键,另建一个表专门维护编号) 插入的时候,如果出现冲突,就再重新取编号,再插入就可以了. 这样的效率高于用锁. 因为用锁要锁住整个表,直到插入操作完成. 这样,即使正常的读数据也会受到影响到. 举个例子来说 不锁表的情况: 假设你要插入一条记录,那么你就取最大编号:不是N+1,然后进行插入 如果在你取编号后,插入记录前,又有另一个用户要插入记录,那很显然,因为你的记录还未插 入,那另一个用户取得的编号仍然是N+1,和你的一样,这样就导致了编号重复. 只锁最大记录的情况: 假设你要插入一条记录,那么你就取最大编号:不是N+1,然后进行插入 如果在你取编号后,插入记录前,又有另一个用户修改记录,他将某条记录修改成了N+! 那结果和上面一样,导致了编号重复. 锁整个表的情况: 因为你在取编号时,锁住了整个表,那很显然,就相当于你独占了整个表,此时,可以避免编号重复,但另一个后果是,所有的用户都必须等你释放了锁后,才能使用,包括只是读取表的用户,如果迸发用户多的话,很显然严重影响效率.

转载于:https://www.cnblogs.com/Mr-Xia/archive/2011/09/07/2169915.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值