您的位置:首页 > 其它

ORA-02437 违反主键

2016-02-25 16:27 471 查看
在给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;

提交完成。

由于是无关紧要的测试数据,可以直接删除掉重复的数据,如果是正式数据,在处理的时候,要进行周密的测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: