Oracle

[ORACLE] 오라클 ORA-00001: 무결성 제약 조건에 위배됩니다

ziziDev 2024. 12. 11. 14:52
반응형

오라클 ORA-00001

기본 키(primary key) 또는 고유 제약 조건(unique constraint)을 위반했을 때 발생하는 오류입니다.

이 오류는 보통 중복된 데이터를 삽입하거나, 기존에 존재하는 데이터와 동일한 데이터가 삽입될 때 발생합니다.

 

📘 오류의 원인

  1. Primary Key 중복
    • 테이블의 기본 키(PRIMARY KEY)에 중복된 값이 삽입될 때 발생합니다.
    • 예를 들어, id가 기본 키인 테이블에 중복된 id 값을 삽입하려고 할 때 발생합니다.
  2. Unique 제약 조건 위반
    • 테이블의 특정 컬럼에 대해 UNIQUE 제약 조건이 설정되어 있는데, 중복된 데이터를 삽입하려고 할 때 발생합니다.
    • 예: 이메일, 전화번호 등 고유해야 하는 컬럼에 중복 데이터를 삽입할 때.
  3. 시퀀스 값 중복
    • 시퀀스(sequence)를 사용해 자동으로 증가하는 기본 키를 생성할 때, 시퀀스가 제대로 작동하지 않으면 중복된 키가 생성될 수 있습니다.
  4. Foreign Key 참조 위반
    • 부모 테이블의 기본 키(primary key)를 참조하는 외래 키(foreign key) 제약 조건이 깨질 때 발생할 수 있습니다.
  5. 데이터 Migration(이전) 중 중복 발생
    • 데이터를 다른 시스템에서 이전할 때, 기본 키나 고유 제약 조건을 깨뜨리는 중복 데이터가 삽입될 때 발생합니다.

🔧 해결 방법

🔍 1️⃣ 중복 데이터 확인하기

먼저 중복된 데이터가 어떤 것인지 파악하는 것이 중요합니다.

SELECT 컬럼1, COUNT(*)
FROM 테이블명
GROUP BY 컬럼1
HAVING COUNT(*) > 1;

 

 

https://docs.oracle.com/en/error-help/db/ora-00001/?r=23ai

 

ORA-00001 - Database Error Messages

unique constraint (constraint_schema.constraint_name) violated on table table_schema.table_name columns (column_names) An UPDATE, INSERT or MERGE statement attempted to update or create a record that duplicated values limited by a unique constraint. A uniq

docs.oracle.com

 

반응형