Database Error
Cannot create index 'idx_user_email': key must be unique but exists in index 'idx_user_email' on table 'users'
What This Error Means
This error occurs when you try to create a new index on a column that already exists and is defined as unique, but the index name is the same as the existing unique index.
Why It Happens
This error happens because SQL requires that a unique index has a distinct name. When you try to create a new index on the same column with the same name, SQL throws an error because it would result in duplicate unique indexes.
How to Fix It
- 1To fix this error, you can either rename the existing unique index to a different name that does not conflict with the new index, or you can change the new index to be non-unique by dropping the unique constraint. Here's an example:
- 2// Before (broken code)
- 3CREATE UNIQUE INDEX idx_user_email ON users (email);
- 4CREATE INDEX idx_user_email ON users (email);
- 5// After (fixed code)
- 6CREATE UNIQUE INDEX idx_user_email ON users (email); OR DROP INDEX idx_user_email ON users;
Example Code Solution
❌ Before (problematic code)
SQL
CREATE UNIQUE INDEX idx_user_email ON users (email);
CREATE INDEX idx_user_email ON users (email);✅ After (fixed code)
SQL
DROP INDEX idx_user_email ON users; CREATE UNIQUE INDEX idx_user_email ON users (email);Fix for Cannot create index 'idx_user_email': key must be unique but exists in index 'idx_user_email' on table 'users'
Browse Related Clusters
Related SQL Errors
Related SQL Blog Articles
Have a different error? Get an instant explanation.
Explain Another Error