这两天在itpub上面看到了关于主、外键的贴。故试验下主外键主键的各种关系
首先一个主键可以同时被多个外键所引用,这个就要求了外键里面的数据都包含在主键里面(定义就是这样)。
SQL> create table a as select * from emp;
Table created.
SQL> create table b as select * from dept;
Table created.
SQL> create table c as select * from dept;
Table created.
SQL> create table d as select * from emp;
Table created.
SQL> alter table b add constraint pk_b primary key (deptno);
Table altered.
SQL> alter table c add constraint pk_c primary key (deptno);
Table altered.
SQL> alter table a add constraint fk_a_1 foreign key (deptno) references b(deptno);
Table altered.
SQL> alter table d add constraint fk_d_1 foreign key (deptno) references b(deptno);
Table altered.
另外就是一个外键可以同时依赖于多个主键。
需要验证的就是是否外键中的记录需要同时存在于多个表的主键中
SQL> alter table a add constraint fk_a_1 foreign key (deptno)