那出最后的家产,求解有关序列号的问题?

yardyg 2004-09-13 04:16:39
我生成序列号的方式是到select max(id) from tableName获取最大序列然后加1(表中序列号为关键字),由于程序要求一次可能插入上千条数据,如果同时操作这个表,就会产生序列号冲突,我该如何结决呢,谢谢!
...全文
106 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
redlaputa 2004-09-13
Math.abs((int)new Date().getTime());
试试这个
回复
bdsc 2004-09-13
简单:
(程序要求一次可能插入上千条数据)
1 锁住表
2 select max(id)
3 插入一条id=max(id) + 10000的空(临时)纪录 **
4 放开锁

程序中这10000个id只要不重复随便用。结束前 (**) 自己考虑是否需要删除3的空(临时)纪录


复杂:
<O'Reilly> j2ee design patterns里讲了个PK Block Generator Pattern,你可以用

回复
zj0285 2004-09-13
加一个互斥锁试试
回复
AHUA1001 2004-09-13
怎么会冲突呢?操作的时候那个表是被锁定的。
回复
jfy3d 2004-09-13
使用自动递增数 自己可以设置字段
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-13 04:16
社区公告
暂无公告