2 回答

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個贊
你創(chuàng)建一個表,把其中一個列(比如“ID”)的“標(biāo)識列”屬性設(shè)為“是”,然后設(shè)置它的種子(初始值)、遞增量。比如你按默認(rèn)設(shè)定種子為1、遞增量為1,那么生成的ID序列就會是:1、2、3、4、……
在記錄不是特別多(>1000萬條)時,這個值是唯一的,也就是不會出現(xiàn)兩者相同的情況。
但這樣會有一個問題,比如你順序生成了10條記錄:
1、2、3、4、5、6、7、8、9、10
然后你刪除了3號記錄,這樣剩下的記錄就是:
1、2、4、5、6、7、8、9、10
如果你希望編號是從1累加到,中間不隔斷,那你就要設(shè)定另一個非標(biāo)識列比如“number”。然后在添加新記錄時使用:
select @number=max(number) from tablename
insert tablename(number) values(@number+1)
------------------------
以上使用SQL語句示范,假定你使用存儲過程操作數(shù)據(jù)庫,如果你使用ASP,就這樣:
psql="select max(number) as maxnumber from tablename"
rs.open psql,conn,3,3
maxnumber=rs("maxnumber")
將最大number值讀出,然后加1,再用于你的數(shù)據(jù)添加語句。
------------------------
這樣就可以手動生成編號了,然后在刪除記錄的時候這樣寫程序:
' 假定要刪除的記錄編號為@n
delete tablename where number=@n
update tablename set number=number-1 where number>@n
這樣就會在刪除記錄后重新整理編號順序了。同樣是SQL語句示范,用ASP+SQL的代碼就不寫了,自己悟吧。
- 2 回答
- 0 關(guān)注
- 1031 瀏覽
添加回答
舉報