Master in Oracle Cloud (OCI) | Join us for the demo session on 4th December 2025 at 7:00 PM IST

ORA-01452: Cannot CREATE UNIQUE INDEX; Duplicate Keys Found

Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
Breadcrumb Abstract Shape
  • User AvatarKiran Dalvi
  • 03 Dec, 2023
  • 0 Comments
  • 1 Min Read

ORA-01452: Cannot CREATE UNIQUE INDEX; Duplicate Keys Found

SQL> create unique index TEST_IDX on TEST5(EMPNO);
create unique index TEST_IDX on TEST5(EMPNO)
*
ERROR at line 1:
ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found

While creating unique index on a table , got this error.

Solution:

Find the duplicate rows in the table and delete them.

Use below script to delete the duplicate rows. :

REM This is an Example :

REM This is an example
SQL*Plus Script to detect duplicate rows from
REM a table.
REM
set echo off
set verify off heading off
undefine t
undefine c
prompt
prompt
prompt Enter name of table with duplicate rows
prompt
accept t prompt 'Table: '
prompt
select 'Table '||upper('&&t') from dual;
describe &&t
prompt
prompt Enter name(s) of column(s) which should be unique. If more than
prompt one column is specified, you MUST separate with commas.
prompt
accept c prompt 'Column(s): '
prompt
select &&c from &&t
where rowid not in (select min(rowid) from &&t group by &&c)
/
SQL> @dupli.sql

Enter name of table with duplicate rows

Table: TEST5

Table TEST5

Name Null? Type
----------------------------------------- -------- ---------------------------
EMPNO NUMBER
EMPNAME VARCHAR2(29)

Enter name(s) of column(s) which should be unique. If more than
one column is specified, you MUST separate with commas.

Column(s): EMPNO

1
4

We can see, for empno=1 and 4 we have duplicate rows. Analyze those rows and delete them remove the duplicates, Once duplicate rows were removed, try to create the index.

Hope it Helps!

Let's Talk

Find your desired career path with us!

Let's Talk

Find your desired career path with us!