我们在开发多用户系统一定出现这样的情况:
你要求一张表的主键是唯一的连续的,而这个主键是系统自动生成的:
(1)但几个用户同时在添加记录时怎样保证主键的唯一和连续的,可能某用户是添加的是多条记录,如:甲用户添加两条记录,但添加主键是2003122201,乙用户这时候添加了一条2003122202,这时甲添加第二条时只能是200312223.
(2)但在保存是甲保存成功,(2003122201和2003122203),已没有保存成功(2003122202),这样在下一位用户添加记录主键必须先是(2003122202),在是(2003122204)
(3)但删除(2003122202)时,这样在下一位用户添加记录主键必须先是(2003122202)
你要求一张表的主键是唯一的连续的,而这个主键是系统自动生成的:
(1)但几个用户同时在添加记录时怎样保证主键的唯一和连续的,可能某用户是添加的是多条记录,如:甲用户添加两条记录,但添加主键是2003122201,乙用户这时候添加了一条2003122202,这时甲添加第二条时只能是200312223.
(2)但在保存是甲保存成功,(2003122201和2003122203),已没有保存成功(2003122202),这样在下一位用户添加记录主键必须先是(2003122202),在是(2003122204)
(3)但删除(2003122202)时,这样在下一位用户添加记录主键必须先是(2003122202)
能不能说点具体点,我想锁定表是不行的,我是要多个用户同时使用的
1.把这个编号变成非主键(也不要Unique),另外弄一个比如自增长的字段作为主键;
2.客户在提交前他不能知道真正的编号,只有提交了之后才行;
3.给此表添加一个触发器,AfterInsert,Select Max(编号)+1 from xxxx,把此编号写入表中;
不过,你可以改变方式,比如象pazee(耙子)说的
也可以改变你操作表的方式,比如,把每个用户的操作时间缩小,
只要用户感觉不到长时间等待就可以了!