AutoIncrement字段可以使用相同的值两次吗?

时间:2016-02-08 10:29:06

标签: ms-access access-vba

我有一个带有id字段的table1,类型为AutoIncrement。如果table2中没有相同id的记录,我需要将table1中的整个记录​​复制到table2中。然后我从table1中删除记录。

我需要知道,如果table1获取新记录,则id字段永远不会是之前使用过的数字。这是自动发生的,还是我需要做些什么来确保这一点?

我尝试删除一些记录并添加新记录,但它确实没有使用相同的ID,但我不确定这是不会发生的事情。

3 个答案:

答案 0 :(得分:4)

可以很容易地在autoincremet字段中复制数字,但通常应用程序不能以这种方式工作。

Access会记住autoincrement字段中最后插入的值,并将其用于计算下一个值。您无法使用VBA中的表设计器或记录集将特定值插入自动增量字段,但是如果使用INSERT SQL语句则可以。因此,如果autoincrement字段没有唯一索引,则可以插入任何值。此外,如果您插入的值小于最大现有数字,Access将自动生成重复项。

因此,我不建议在没有唯一索引的情况下依赖唯一的自动增量数字。

INSERT SQL可用于重置计算而不删除字段/表,只需在查询构建器中运行查询或使用VBA:

INSERT INTO Table1 ( id ) SELECT 1;

这是我刚刚创建的自动增量字段ID的表:

enter image description here

答案 1 :(得分:2)

自动增量从不使用相同的#,即使它已从表中删除。

它需要完全重置,以便从基础开始并创建新的#。

答案 2 :(得分:2)

确实如此,即使删除了记录,压缩了数据库等,MS Access中的自动增量字段也始终是增量的。 可以重置建议的数字,删除自动增量字段,执行表的副本,然后再次添加自动增量字段。