ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-02437: 无法验证 (STUDY.PK_EMP) - 违反主键

ORA-02437: 无法验证 (STUDY.PK_EMP) - 违反主键

原创 Linux操作系统 作者:genweihua 时间:2012-11-28 10:43:05 0 删除 编辑
     在给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;

提交完成。

由于是无关紧要的测试数据,可以直接删除掉重复的数据,如果是正式数据,在处理的时候,要进行周密的测试。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22275400/viewspace-750109/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
事了拂衣去,深藏功与名!

注册时间:2009-08-28

  • 博文量
    114
  • 访问量
    623647