问答详情
源自:5-4 Oracle 在修改表时添加主键约束

无法添加主键约束

SQL> ALTER TABLE USERINFO_1
  2  ADD CONSTRAINT PK_ID PRIMARY KEY(ID);
ADD CONSTRAINT PK_ID PRIMARY KEY(ID)
               *
第 2 行出现错误:
ORA-02437: 无法验证 (SYSTEM.PK_ID) - 违反主键

提问者:慕瓜2966552 2015-08-26 16:44

个回答

  • tellmewhy2037
    2016-02-24 16:51:39

    正在给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用户下的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;

  • 请教我zong
    2016-01-13 16:44:38

    是不是ID字段有null值或重复值

  • 森屿者
    2015-12-31 00:04:47

    alter table userinfo_1

    add constraint pk_id primary key(id);