반응형
오라클 ORA-00001
기본 키(primary key) 또는 고유 제약 조건(unique constraint)을 위반했을 때 발생하는 오류입니다.
이 오류는 보통 중복된 데이터를 삽입하거나, 기존에 존재하는 데이터와 동일한 데이터가 삽입될 때 발생합니다.
📘 오류의 원인
- Primary Key 중복
- 테이블의 기본 키(PRIMARY KEY)에 중복된 값이 삽입될 때 발생합니다.
- 예를 들어, id가 기본 키인 테이블에 중복된 id 값을 삽입하려고 할 때 발생합니다.
- Unique 제약 조건 위반
- 테이블의 특정 컬럼에 대해 UNIQUE 제약 조건이 설정되어 있는데, 중복된 데이터를 삽입하려고 할 때 발생합니다.
- 예: 이메일, 전화번호 등 고유해야 하는 컬럼에 중복 데이터를 삽입할 때.
- 시퀀스 값 중복
- 시퀀스(sequence)를 사용해 자동으로 증가하는 기본 키를 생성할 때, 시퀀스가 제대로 작동하지 않으면 중복된 키가 생성될 수 있습니다.
- Foreign Key 참조 위반
- 부모 테이블의 기본 키(primary key)를 참조하는 외래 키(foreign key) 제약 조건이 깨질 때 발생할 수 있습니다.
- 데이터 Migration(이전) 중 중복 발생
- 데이터를 다른 시스템에서 이전할 때, 기본 키나 고유 제약 조건을 깨뜨리는 중복 데이터가 삽입될 때 발생합니다.
🔧 해결 방법
🔍 1️⃣ 중복 데이터 확인하기
먼저 중복된 데이터가 어떤 것인지 파악하는 것이 중요합니다.
SELECT 컬럼1, COUNT(*)
FROM 테이블명
GROUP BY 컬럼1
HAVING COUNT(*) > 1;
https://docs.oracle.com/en/error-help/db/ora-00001/?r=23ai
반응형