如何在访问中创建一个独特的ID?

时间:2013-09-25 17:29:15

标签: ms-access ms-access-2007 ms-access-2010

我需要有关Microsoft Access问题的帮助,

我有以下身份证明数据

ID 
AAA   
BBB   
BBB   
CCC   
DDD   

我需要根据ID创建一个新的数字ID字段。它看起来应该是这样的,

ID  --- NewID
AAA ---   1
BBB ---   2
BBB ---   2
CCC ---   3
DDD ---   4

1 个答案:

答案 0 :(得分:1)

让我们调用您现有的ID表tblOldIDs。我们假设它有一列ID,其中包含您在上面显示的数据。

现在,运行以下SQL语句:

create table tblNewIDs (
  NewID autoincrement primary key
, OldID long not null references tblOldIDs (ID)
)

这将创建一个新表,其中包含与旧ID相对应的新ID。表引用约束将有助于强制执行此操作。

现在运行以下SQL:

insert into tblNewIDs (OldID)
select distinct o.ID
from tblOldIDs as o

现在,您的新表tblNewIDs充满了旧ID到新数字ID的映射!

编辑:如果您将映射作为一次性事务,则上面的插入查询很好。但是,如果您需要重复映射过程,则可以使用以下查询仅将旧ID映射到新ID(如果尚未映射):

insert into tblNewIDs (OldID)
select distinct o.ID
from tblOldIDs as o
where o.ID not in (
  select OldID
  from tblNewIDs
)