orcl@TEST>alter table emp drop primary key;

 

表已更改。

 

orcl@TEST>alter table dept drop primary key;

 

表已更改。

 

orcl@TEST>alter table emp add constraint pk_emp primary key(empno);

 

表已更改。

 

orcl@TEST>alter table dept add constraint pk_dept primary key(deptno);

 

表已更改。

 

orcl@TEST>alter table emp add constraint pk_emp_dept foreign key(deptno) references  dept;

 

表已更改。

----------------查看主外键是否生效------------

orcl@TEST>select empno,ename,sal,deptno from emp;

 

     EMPNO ENAME             SAL     DEPTNO

---------- ----------                 ----------    ----------

      7369 SMITH             800         20

      7499 ALLEN            1600         30

      7521 WARD             1250         30

      7566 JONES            2975         20

      7654 MARTIN           1250         30

      7698 BLAKE            2850         30

      7782 CLARK            2450         10

      7788 SCOTT            3000         20

      7839 KING             5000         10

      7844 TURNER           1500         30

      7876 ADAMS            1100         20

      7900 JAMES             950         30

      7902 FORD             3000         20

      7934 MILLER           1300         10

 

已选择14行。

 

orcl@TEST>insert into emp(empno,ename,deptno) values(1234,'mainbo',10);

 

已创建 1 行。

 

orcl@TEST>select empno,ename,sal,deptno from emp;

 

     EMPNO ENAME             SAL     DEPTNO

---------- ---------- ---------- ----------

      7369 SMITH             800         20

      7499 ALLEN            1600         30

      7521 WARD             1250         30

      7566 JONES            2975         20

      7654 MARTIN           1250         30

      7698 BLAKE            2850         30

      7782 CLARK            2450         10

      7788 SCOTT            3000         20

      7839 KING             5000         10

      7844 TURNER           1500         30

      7876 ADAMS            1100         20

      7900 JAMES             950         30

      7902 FORD             3000         20

      7934 MILLER           1300         10

      1234 mainbo                        10

 

已选择15行。

 

orcl@TEST>insert into emp(empno,ename,deptno) values(2345,'mainbo',50);

insert into emp(empno,ename,deptno) values(2345,'mainbo',50)

*

 1 行出现错误:

ORA-02291: 违反完整约束条件 (TEST.PK_EMP_DEPT) - 未找到父项关键字

 

 

orcl@TEST>insert into dept(deptno,dname,loc) values(50,'TTTT',50);

 

已创建 1 行。

 

orcl@TEST>insert into emp(empno,ename,deptno) values(2345,'mainbo',50);

 

已创建 1 行。

---------------------主外键约束的删除-----------------

查找出主外键的名称,进行删除删除操作

orcl@TEST>select table_name,constraint_type,constraint_name from all_constraints where wner='TEST';

TABLE_NAME      C CONSTRAINT_NAME
--------------- - --------------------
DEPT            P PK_DEPT
EMP             R PK_EMP_DEPT

已用时间:  00: 00: 00.26

orcl@TEST>ALTER TABLE EMP DROP CONSTRAINT PK_EMP_DEPT;

表已更改。

已用时间:  00: 00: 00.32
orcl@TEST>select table_name,constraint_type,constraint_name from all_constraints where wner='TEST';

TABLE_NAME      C CONSTRAINT_NAME
--------------- - --------------------
DEPT            P PK_DEPT
----------------主键的删除----------------

orcl@TEST>alter table dept drop constraint pk_dept;

表已更改。

alter table dept drop primary key;