添加或更改在 Access 中的表的主键

添加或更改在 Access 中的表的主键

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

主键是一个字段或一组字段的表中唯一的值。可以使用的密钥值来引用整个记录,因为每个记录具有不同的值的键。每个表只能有一个主键。创建一个表,也可以指定要用作主键字段时,access 自动可以为您创建主键字段。本文介绍如何以及为什么要使用的主键。

若要设置表的主键,请在设计视图中打开表。选择要使用的字段,然后在功能区上单击“主键”。

注意: 本文旨在仅用于 Access 桌面数据库。Access 会自动管理为 Access web 应用程序和 web 数据库中的新表的主键。虽然可以重写这些自动化的主键,但我们不建议您执行操作。

本文内容

在 Access 中的主键的概述

设置主键使用 Access 中已有的字段

删除主键

更改在 Access 中的主键

其他信息

在 Access 中的主键的概述

Access 使用主键字段快速将多个表中的数据相关联,有意义的方式合并的数据。您可以在其他表以返回引用的源的主键的表中包括的主键字段。这些其他表中的字段被称为外键。例如,客户表中的客户 ID 字段可能还会显示在订单表中。在客户表中,它是主键。在订单表,它称为外键。外键,简言之,是另一个表的主键。有关详细信息,请参阅数据库设计基础

两个 Access 数据表之间显示的主键和外键

1. 主键

2. 外键

如果将现有数据移到数据库中,您可能已经拥有了可用作主键的字段。通常,唯一的标识号(如 ID 号、序列号或代码)充当表中的主键。例如,您可能有一个“客户”表,其中每个客户都有一个唯一的客户 ID 号。客户 ID 字段是主键。

Access 会自动为主键创建索引,这有助于加快查询和其他操作的速度。Access 还确保每条记录的主键字段中都有一个值,并且该值始终是唯一的。

在数据表视图中创建一个新表时,Access 将自动为您创建主键,并将其分配"ID"和自动编号数据类型的字段名称。

什么是好的主键?

一个好的候选主键具有以下几个特征:

  • 唯一标识每一行

  • 从不为空或为 Null,即它始终包含一个值 

  • 所包含的值几乎不(理想情况下永不)改变

如果您不能确定好键,创建一个自动编号字段用作键。自动编号字段自动第一次保存每条记录时为自己生成一个值。因此,将自动编号字段满足所有三个特征的好的主键。添加自动编号字段的详细信息,请参阅文章添加自动编号字段为主键

Access 表设计视图中标记为 ID 的 AutoNumber 主键

“自动编号”字段是一个好的主键。

较差主键的示例

缺少一个或多个好的候选主键特征的任何字段对于主键都是糟糕的选择。下面是会让“联系人”表的主键成为较差主键的几个字段示例,以及成为糟糕选择的原因。

较差主键

原因

个人姓名

可能不确实唯一,还可能改变

电话号码

可能会改变。

电子邮件地址

可能会改变。

邮政编码

可能多人共享一个邮政编码

事实和数字的组合

事实部分可能有所变化,带来维护负担。如果事实部分作为单独字段重复,则可能导致混乱。例如,将城市和增量号码(例如 NEWYORK0579)组合在一起,如果城市也存储为字段,则是糟糕的选择。

身份证号

  • 政府部门和一些组织不允许隐私信息。

  • 某些用户没有 SSN

  • 个人一生中可能使用多个

复合键:将多个字段组合在一起作为主键使用

在某些情况下,要用作主键的表中的两个或多个字段。例如,订单明细表中存储订单明细项目可以使用其主键中的两个字段: 订单 ID 和产品 id。有多个字段的项称为复合键。

设置主键使用 Access 中已有的字段

要使主键正常工作,该字段必须唯一标识每一行,决不包含空值或 Null 值,并且很少(理想情况下永不)改变。要设置主键,请执行下列操作:

  1. 打开要修改的数据库。

  2. 在导航窗格中,右键单击要设置主键的表,然后在快捷菜单上,单击“设计视图”

    提示: 如果未显示导航窗格,请按 F11 显示导航窗格。

  3. 选择要用作主键的一个或多个字段。

    若要选择一个字段,请单击所需字段的行选择器。

    若要选择多个字段来创建复合键,按住 CTRL,然后单击每个字段的行选择器。

  4. “设计”选项卡上的“工具”组中,单击“主键”

    “设计”选项卡上的“工具”组

    键指示器添加到您指定为主键的一个或多个字段的左侧。

在 Access 中删除主键

删除主键时,以前作为主键的一个或多个字段将不再作为标识记录的主要方式。

删除主键不会删除表中的字段,但是会删除为主键创建的索引。

  1. 您可以删除主键之前,必须确保它不参与任何表关系。如果您尝试删除为主键的一个或多个关系的一部分,Access 会警告您必须先删除关系。

    要删除表关系,请完成以下步骤:   

    1. 如果打开了参与表关系的表,请关闭它们。不能删除打开的表之间的表关系。

    2. 数据库工具选项卡上,在关系组中,单击关系

      Access 功能区图像

    3. 如果参与表关系的表是不可见,请在设计选项卡上,在关系组中,单击显示表

    4. 选择要添加的表显示表对话框,和然后单击添加,然后单击关闭

      功能区“设计”选项卡“关系”组

    5. 单击要删除的表关系的表关系行(当选中该行时,该行变粗),然后按 Delete 键。

    6. 设计选项卡上,在关系组中,单击关闭

  2. 删除关系之后,在导航窗格中,右键单击要删除的主键所在的表,然后单击“设计视图”

    提示: 如果未显示导航窗格,请按 F11 显示导航窗格。

  3. 单击当前主键的行选择器。

    如果该主键只包含一个字段,则单击该字段的行选择器。

    如果该主键包含多个字段,则单击该主键中任何字段的行选择器。

  4. “设计”选项卡上的“工具”组中,单击“主键”

    以前指定为主键的一个或多个字段中的键指示器被删除。

注意: 保存一个新表而不设置主键时,Access 会提示您创建一个主键。如果选择“是”,Access 会创建一个使用“自动编号”数据类型的 ID 字段,为每条记录提供一个唯一值。如果您的表中已有一个“自动编号”字段,Access 会将该字段用作主键。

更改在 Access 中的主键

如果决定更改表的主键,则可以通过执行下列步骤来完成:

  1. 删除现有的主键使用删除主键部分中的说明进行操作。

  2. 设置主键使用设置主键部分中的说明进行操作。

其他信息

有关数据库设计和选择适当的主键的详细信息,请参阅文章:

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×