如何让自动编号从1开始?

时间:2020-12-05 06:07:09
表中id字段是自动编号类型,表中以前有n条记录全删了,但是新加记录的编号还是从n+1开始.怎样让它从1开始?

11 个解决方案

#1


关于此主题请参考:http://access911.net/index.asp?u1=a&u2=71FAB01E13DC

#2


工具->数据库实用工具->压缩和修复数据库

#3


先把id的自动编号去掉。保存表然后在打开设id为自动编号。前提表中没有数据了。

#4


为什么要让它从1开始呢?从n+1开始不好吗?

#5


顶!我还想问的是:我删去了原来的第n条记录!后面的记录怎么样才能重新编号!就是第n+1条变成第n!以后的依次?

#6


压缩数据库就可以了

#7


回 color33() :"工具->数据库实用工具->压缩和修复数据库"这个方法我试了,不行呀?请指教!

#8


关于此主题请参考:http://access911.net/index.asp?u1=a&u2=71FAB01E13DC

#9


如何定义自动编号字段的初始值和步进值?

作者:ec  更新日期:2002-12-30  浏览人次:278 
专题地址: http://access911.net/index.asp?board=4&recordid=71FAB01E13DC 

 

问题:



 如何定义自动编号字段的初始值和步进值?
如何定义自动增加字段的初始值和步进值?
如何使删除过数据的自动增加字段的开始值重新从1开始? 

 


回答:



 通过以下语句,你可以在建表的时候指定其起始值和步进值:

CREATE TABLE tblNewOrder2 (
  OrderId AUTOINCREMENT (1000, 10), 
  ItemId LONG, Quantity LONG)  



你也可以用下面的语句修改下一个起始值和步进值:

ALTER TABLE tblOrder 
  ALTER COLUMN OrderId COUNTER (2000, 50)  


要重新开始:
ALTER TABLE tableName
  ALTER COLUMN OrderId COUNTER (1, 1)  


在 VBE 界面里面用以下代码:
docmd.runsql "ALTER TABLE tableName ALTER COLUMN OrderId COUNTER (1, 1)" 



这里要注意的是自动编号往往被用作标识记录的唯一性,但是 Jet 在用 DDL 语句更改自动编号的同时不会保证修改后的自动编号仍然保持唯一性,因此会出现标识号重复的现象。要避免这一现象最好把自动编号设定为主键、或者不可重复。

Please realize that Jet won't prevent you from altering AutoNumber seed and increment values that produce duplicate values. However, if the AutoNumber column has been designated as the primary key or it contains a unique index, you will be prevented from saving rows with duplicates. 

不过这些操作需要 JET 4.0。
 

 



如何运行一段 jet sql 代码
http://access911.net/eg/swf/runsql.swf

 
 

#10


告诉你一个绝对正确的方法:
    不论表中是否有数据,进入表的结构设计状态,将具有自动编号属性的字段删除(Access一般会用ID作为字段名),关闭设计状态并保存修改。再次进入表的结构设计状态,在原位置添加一个具有自动编号属性的字段。关闭设计状态并保存修改即大功告成。除了自动编号改变外对其他字段已经输入的数据没有任何影响。

#11


另外做一张表格式和原表一样的,ID为自动编号

再把原表追加到新表中,当然ID字段不操作,然后得到ID为从1~N的编号了

#1


关于此主题请参考:http://access911.net/index.asp?u1=a&u2=71FAB01E13DC

#2


工具->数据库实用工具->压缩和修复数据库

#3


先把id的自动编号去掉。保存表然后在打开设id为自动编号。前提表中没有数据了。

#4


为什么要让它从1开始呢?从n+1开始不好吗?

#5


顶!我还想问的是:我删去了原来的第n条记录!后面的记录怎么样才能重新编号!就是第n+1条变成第n!以后的依次?

#6


压缩数据库就可以了

#7


回 color33() :"工具->数据库实用工具->压缩和修复数据库"这个方法我试了,不行呀?请指教!

#8


关于此主题请参考:http://access911.net/index.asp?u1=a&u2=71FAB01E13DC

#9


如何定义自动编号字段的初始值和步进值?

作者:ec  更新日期:2002-12-30  浏览人次:278 
专题地址: http://access911.net/index.asp?board=4&recordid=71FAB01E13DC 

 

问题:



 如何定义自动编号字段的初始值和步进值?
如何定义自动增加字段的初始值和步进值?
如何使删除过数据的自动增加字段的开始值重新从1开始? 

 


回答:



 通过以下语句,你可以在建表的时候指定其起始值和步进值:

CREATE TABLE tblNewOrder2 (
  OrderId AUTOINCREMENT (1000, 10), 
  ItemId LONG, Quantity LONG)  



你也可以用下面的语句修改下一个起始值和步进值:

ALTER TABLE tblOrder 
  ALTER COLUMN OrderId COUNTER (2000, 50)  


要重新开始:
ALTER TABLE tableName
  ALTER COLUMN OrderId COUNTER (1, 1)  


在 VBE 界面里面用以下代码:
docmd.runsql "ALTER TABLE tableName ALTER COLUMN OrderId COUNTER (1, 1)" 



这里要注意的是自动编号往往被用作标识记录的唯一性,但是 Jet 在用 DDL 语句更改自动编号的同时不会保证修改后的自动编号仍然保持唯一性,因此会出现标识号重复的现象。要避免这一现象最好把自动编号设定为主键、或者不可重复。

Please realize that Jet won't prevent you from altering AutoNumber seed and increment values that produce duplicate values. However, if the AutoNumber column has been designated as the primary key or it contains a unique index, you will be prevented from saving rows with duplicates. 

不过这些操作需要 JET 4.0。
 

 



如何运行一段 jet sql 代码
http://access911.net/eg/swf/runsql.swf

 
 

#10


告诉你一个绝对正确的方法:
    不论表中是否有数据,进入表的结构设计状态,将具有自动编号属性的字段删除(Access一般会用ID作为字段名),关闭设计状态并保存修改。再次进入表的结构设计状态,在原位置添加一个具有自动编号属性的字段。关闭设计状态并保存修改即大功告成。除了自动编号改变外对其他字段已经输入的数据没有任何影响。

#11


另外做一张表格式和原表一样的,ID为自动编号

再把原表追加到新表中,当然ID字段不操作,然后得到ID为从1~N的编号了