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 行。
---------------------主外键约束的删除-----------------
查找出主外键的名称,进行删除删除操作
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
TABLE EMP DROP CONSTRAINT PK_EMP_DEPT;
表已更改。
已用时间: 00: 00: 00.32
table_name,constraint_type,constraint_name from all_constraints where wner='TEST';TABLE_NAME C CONSTRAINT_NAME
--------------- - -------------------- DEPT P PK_DEPT ----------------主键的删除----------------table dept drop constraint pk_dept;
表已更改。
或
alter table dept drop primary key;