Access 数据库建立外键详解
在 Microsoft Access 中,外键(Foreign Key)用于在两个表之间建立联系,确保数据的参照完整性(Referential Integrity),外键是指一个表中的字段,它引用另一个表中的主键(Primary Key)。
建立外键的前置条件
在创建外键关系之前,必须确保满足以下条件:
- 主表必须有主键:被引用的表(父表)必须定义一个主键。
- 数据类型必须一致:外键字段与主键字段的数据类型必须完全相同(如果主键是“自动编号”,外键必须是“数字”且字段大小为“长整型”)。
- 数据必须一致:如果表中已有数据,外键列中的所有值必须在主键列中存在,否则会报错。
建立外键的具体步骤
Access 并不像 SQL Server 或 MySQL 那样在建表界面直接定义外键,而是通过

“关系”窗口进行可视化配置。
打开关系窗口
- 点击顶部菜单栏的 “数据库工具” (Database Tools) 选项卡。
- 在“关系”组中点击 “关系” (Relationships) 按钮。
添加相关表
- 在弹出的“显示表”窗口中,选中需要建立联系的两个表,点击 “添加” (Add),然后关闭该窗口。
创建关联(拖拽操作)
- 在关系窗口中,用鼠标左键点击主表的主键字段。
- 按住左键不放,将其拖动到从表(子表)的对应外键字段上,然后松开鼠标。
配置参照完整性
- 此时会弹出 “编辑关系” (Edit Relationships) 对话框。
- 勾选 “实施参照完整性” (Enforce Referential Integrity)

:这是建立外键的核心步骤,勾选后,Access 将防止在子表中输入不存在于主表中的值。
- (可选)级联更新相关字段 (Cascade Update Related Fields):当主表的主键值更改时,子表中的外键值会自动同步更新。
- (可选)级联删除相关记录 (Cascade Delete Related Records):当主表中的一条记录被删除时,子表中所有关联的记录将被自动删除。
保存并确认
- 点击 “创建” (Create) 按钮。
- 你会看到两个表之间出现了一条连接线,主表端显示
1,从表端显示 (表示 一对多 关系)。 - 保存关系窗口并关闭。
外键的核心作用
- 防止孤儿记录:确保子表中的每一条记录都有对应的父表记录,避免出现没有归属的数据。
- 数据一致性:通过级联更新和删除,保证跨表数据的同步。
- 优化查询:建立外键关系后,在创建查询(Query)时,Access 会自动识别表之间的连接,无需手动重新拉线。

常见问题与解决方法
- 错误提示“无法创建关系…由于数据违反了参照完整性”:
- 原因:子表中已经存在一些值,而在主表中找不到对应的值。
- 解决方法:检查子表数据,删除或修改那些在主表中不存在的无效记录,然后再尝试建立关系。
- 无法拖动字段:
- 原因:两个字段的数据类型不匹配。
- 解决方法:回到表设计视图,确保主键和外键的类型一致(如:自动编号 $rightarrow$ 数字/长整型)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复