ORA-00001: insert a row with a duplicate value for a primary key


SQL> CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT default_pk PRIMARY KEY,
  2                    ENAME VARCHAR2(10),
  3                    JOB VARCHAR2(9),
  4                    SAL NUMBER(7, 2),
  5                    DEPTNO NUMBER(2));

Table created.

SQL>
SQL> INSERT INTO EMP VALUES (1, 'SMITH', 'CLERK',     800,    20);

1 row created.

SQL> INSERT INTO EMP VALUES (1, 'ALLEN', 'SALESMAN', 1600,    30);
INSERT INTO EMP VALUES (1, 'ALLEN', 'SALESMAN', 1600,    30)
*
ERROR at line 1:
ORA-00001: unique constraint (SYS.DEFAULT_PK) violated


SQL>

Attempt to update a primary key value to a value that already exists


SQL> CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT default_pk PRIMARY KEY,
  2                    ENAME VARCHAR2(10),
  3                    JOB VARCHAR2(9),
  4                    SAL NUMBER(7, 2),
  5                    DEPTNO NUMBER(2));

Table created.

SQL>
SQL> INSERT INTO EMP VALUES (1, 'SMITH', 'CLERK',     800,    20);

1 row created.

SQL> INSERT INTO EMP VALUES (2, 'ALLEN', 'SALESMAN', 1600,    30);

1 row created.

SQL>
SQL> UPDATE emp
  2  SET empno = 1
  3  WHERE empno = 2;
UPDATE emp
*
ERROR at line 1:
ORA-00001: unique constraint (SYS.DEFAULT_PK) violated


SQL>
Home »
Oracle »
Table » 

Primary Key:
  1. Enforcement of Primary Key Constraints
  2. Composite Primary Keys
  3. ORA-00001: insert a row with a duplicate value for a primary key
Related: