Rss & SiteMap

搭建论坛 http://bbs.diylsoft.com:8118/starforum/index.asp

搭建论坛是“搭建式”中文软件开发工具《搭建之星》、《网站·搭建者》技术交流的地方。
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:如何设置一个可以自动递增的编号呢?

1楼
alin999 发表于:2010-6-8 23:24:53

软件里有个字段  需要一个编号

 

编号可以在新增的时候递增 比如 1  2  3 4

 

看来很简单

 

如何实现呢

 

办法1 

 

取当前记录数量 +1   比如当前记录是 8  那么+1=9

 

但是这样的话 如果把编号是7的删除了  再增加  那么  最后一个还是8+1=9

 

办法2  新增的时候 去上一记录的值 +1

 

上一记录是 33  +1=34

这个时候如果记录在其他的地方 插入的 记录就不好找最后一个了

 

 

怎么能找到一个好的办法  使得插入的记录永远是最大呢

 

 

 

 

2楼
引力波 发表于:2010-6-9 20:26:29

把编号这个字段设置成“数值型”,然后使用“数据统计”构件,得到“最大值”,编号=最大值+1

3楼
alin999 发表于:2010-6-9 22:39:52

看似简单的问题 

 

困扰很久了

4楼
x123992009 发表于:2010-6-18 18:15:01

方法一。排序,查找了。。得到最大一个数。

 

方法二。每次增加都把目前的序号。加到一个表的字段里记起来。。同时。增加时。去看那个表中的序号是多少了在加一了。。

 

方法三。。有空在想。

5楼
jsphp 发表于:2010-6-18 18:17:10

哈哈,估计是不行,空想!

6楼
jsphp 发表于:2010-6-18 18:19:55

如果两个人 同时取该值,得到的编号 不就相同了吗。

7楼
jsphp 发表于:2010-6-18 18:21:29
还必须要锁定,但锁定也没法保证不同时,所以这个活,必须由数据库本身来做。
8楼
x123992009 发表于:2010-6-19 18:19:14

楼上的。  多想了。。。数据库它本身在处理数据时就会分先后的。    那怕是。0.000001秒(猜的。嘿嘿)。它也可以区分。。所以不用怕有两个人同时取这个值。。

 

当然。你要在命令上写好。。。一定要取了马上增加。  不要缓存。。

9楼
zhongjian 发表于:2010-6-29 17:01:40

这有一个例子

    http://web.diylsoft.com:8118/starforum/dispbbs.asp?boardid=6&Id=30313

共9 条记录, 每页显示 10 条, 页签: [1]

搭建之星 网站·搭建者 Copyright © 2000 - 2011
Powered By Dvbbs Version 8.2.0
Processed in 0.08105 s, 3 queries.