为现有表格添加参照约束
您可以使用ALTER TABLE语句为现有表添加参照约束。
准备工作
关于本任务
假设示例应用程序中的表格( Db2 示例活动表、项目表、项目活动表、员工表和部门表)已经存在,并具有适当的列定义,且已填充数据。
现在,假设您想通过ALTER TABLE语句添加主键和外部键来定义样本表之间的关系。 以下规则适用于这些关系:
- 在添加主键之前,现有表的主键列必须具有唯一的索引。 索引成为主索引。
- 在添加从属表的相应外键之前,必须添加父表的父键。
你可以用几种不同的方法构建相同的参照结构;然而,以下过程可能最容易理解。
过程
为现有表添加参照约束:
示例
- 创建DEPT表,并在DEPTNO列上定义主键。 CREATE TABLE语句中的PRIMARY KEY子句定义了主键。
CREATE TABLE DEPT ⋮ PRIMARY KEY (DEPTNO); - 创建 EMP 表,将主键定义为 EMPNO,将外键定义为 DEPT。 CREATE TABLE语句中的FOREIGN KEY子句定义了外键。
CREATE TABLE EMP ⋮ PRIMARY KEY (EMPNO) FOREIGN KEY (DEPT) REFERENCES DEPT (DEPTNO) ON DELETE SET NULL; - 修改DEPT表,添加外键MGRNO的定义。
ALTER TABLE DEPT FOREIGN KEY (MGRNO) REFERENCES EMP (EMPNO) ON DELETE RESTRICT;