在给study用户下的semp表建立主键的时候,出现以下错误:
SQL> alter table semp add constraint pk_emp primary key(empno);
alter table semp add constraint pk_emp primary key(empno)
*
第 1 行出现错误:
ORA-02437: 无法验证 (STUDY.PK_EMP) - 违反主键
上网查了一下错误,原来是作为主键的empno有重复,删除掉重复后主键可以正常建立,具体操作如下:
SQL> select empno,ename from semp;
EMPNO ENAME
---------- ----------
7369 SMITH
8000 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
EMPNO ENAME
---------- ----------
7900 JAMES
7902 FORD
7934 MILLER
8100 geng
8100 geng
已选择16行。
SQL> delete from semp where empno=8100;
已删除2行。
SQL> commit;
提交完成。
SQL> alter table semp add constraint pk_emp primary key(empno) enable novalidate
;
表已更改。
SQL> commit;
提交完成。
由于是无关紧要的测试数据,可以直接删除掉重复的数据,如果是正式数据,在处理的时候,要进行周密的测试。
转载于:https://www.cnblogs.com/hllnj2008/p/5217494.html