如何防止多个人同时向access(或mysql)数据库添加记录时,产生重复号码问题。程序是asp语言.

[复制链接]
查看11 | 回复3 | 2011-7-8 10:21:08 | 显示全部楼层 |阅读模式
添加记录前,asp先计算某字段最大值,然后用最大值+1添加记录,当两个人同时访问程序时,最大值+1是一样的,就会产生相同的值,但需要该字段值是唯一的。代码:
rs.open "select sid from s_table order by sid desc",conn,1,1
s_max=rs("sid")‘获取最大值
rs.close
conn.execute "insert into s_table (sid,sname,stype) values (s_max+1,'张三','新用户')"
当两个用户同时访问该程序时,会产生两个同样的sid,这是我不希望的,有什么好办法?

回复

使用道具 举报

千问 | 2011-7-8 10:21:08 | 显示全部楼层
access中,你可以把sid字段设成自动编号的呀,不需要你填的,每添加一条新的记录,sid就会自动+1的。sqlserver也有类似的,但是更复杂一些。mysql没接触过,应该也是类似的吧。“insert into s_table (sid,sname,stype) values (s_max+1,'张三','新用户')”这个语句也不需要添加sid字段了,只要写成insert into s_table (sname,stype) values ('张三','新用户')。sid自己会写上去,自动+1的...
回复

使用道具 举报

千问 | 2011-7-8 10:21:08 | 显示全部楼层
数据库里面sid字段设置成自动编号,然后这样写conn.execute "insert into s_table (sid,sname,stype) values ('张三','新用户')"就可以了,sid将会自动加1...
回复

使用道具 举报

千问 | 2011-7-8 10:21:08 | 显示全部楼层
把sid设置为自增字段,写数据库记录时,不能写sid字段,就可以了。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行