본문 바로가기

PK3

[에러 해결] PK 중복 관련 ORA-00001: unique constraint primary key violated ORA-00001: unique constraint primary key violated 테이블 컬럼작업을 하는 중 데이터가 들어있는 테이블이 있어서, 데이터 백업 후 삭제 -> 테이블 작업 -> 데이터 복구 순서로 작업을 수행하려고 했습니다. 작업 후 복구 중에 데이터가 들어와서 기존 데이터와 중복되는 상황이 발생! 그래서 기존 데이터가 하나도 안들어가는 경우가 발생하였습니다. 여러 테이블의 작업을 수행했는데, 두가지 방법으로 해결하였습니다. 1. INSERT 시 exist 문을 활용하여 PK중복제거 한 데이터만 INSERT하기 2.임시 테이블을 만들어 임시테이블에 INSERT 후 RENAME 하기. 아래는 최대한 비슷하게 구성한 테스트 시나리오입니다. 준비 테스트 테이블 생성. CREATE TABLE.. 2023. 1. 13.
PK 컬럼추가(PK 재생성)(Oracle,Tibero,Mysql) PK는 Primary Key라고 불리며 기본키로 번역되서 불립니다. 특징으로는 테이블 컬럼 내의 유일한 값(Unique)과 빈 값이 없는(Not Null) 특징을 가지고 있습니다. 즉, 각 값들의 특징을 구분할 수 있는 유일한 값이 PK의 값이 되는것이죠. 예를들어 고객의 테이블에서 주민등록번호는 PK가 될 수 있습니다. 한 사람당 유일한 값을 가지는 값이기 때문입니다. 그리고 PK 설정시 자동적으로 Unique Index를 생성하여 줍니다. Oracle과 Tibero의 경우 PK와 같은 컬럼의 Unique Index가 존재 시 따로 생성하지 않고 기존에 있는 Unique Index를 사용합니다. Mysql의 경우에는 이미 있더라도 PK설정시 따로 Unique Index를 생성합니다. 아래의 테스트를 통.. 2021. 4. 5.
PK와 Unique Index PK와 Unique Index간의 헷갈리는 부분이 있어서 포스팅하면서 정리해보도록 하겠습니다. PK PK는 Primary Key로써, 중복될 수 없는 유일한 단일값(Unique)을 가집니다. 그리고 값이 비어있지(Not Null) 않아야 합니다. Object 속성은 Constraint로써 제약조건으로 생성이 됩니다. (DBA_CONSTRAINTS의 뷰에서 확인할 수 있습니다.) UNIQUE INDEX Unique Index는 인덱스가 걸려있는 컬럼에 중복될 수 없는 유일한 값만을 보장하고, 인덱스가 걸려있는 컬럼에 Null값은 입력이 가능합니다. Object의 속성은 Index입니다. 그리고 테이블 당 PK는 하나입니다. UNIQUE INDEX는 여러개를 생성할 수 있습니다. (PK 컬럼에 인덱스가 생성.. 2020. 11. 27.