본문 바로가기

- DB

[Oracle] ORA-00001: 무경설 제약 조건(PK)에 위배

반응형

무결성 제약 조건이 다름아닌 PK(시퀀스)에서 발생했습니다.

 

- 우선, 시퀀스 현재 값을 조회합니다.

SELECT LAST_NUMBER

  FROM USER_SEQUENCES 

 WHERE SEQUENCE_NAME = '시퀀스명'

;

 

- 해당 시퀀스의 증가값을 1에서 큰 숫자로 변경합니다.

ALTER SEQUENCE 시퀀스명 INCREMENT BY 100;

 

- 해당 시퀀스 nextval을 호출하여 변경한 만큼 증가시킵니다.

SELECT 시퀀스명.nextval

  FROM dual

;

 

- 다시 기존과 같이 1씩 증가하도록 시퀀스 증가값을 변경합니다.

ALTER SEQUENCE 시퀀스명 INCREMENT BY 1;

 

그리고 다시 시퀀스 현재 값을 조회해보면,

시퀀스가 증가하여 무결성 에러를 해결할 수 있습니다.

 

다만, 이 방법은 우선 정상화를 위한 것이며 발생한 원인을 분석하여 재발하지 않도록 해야합니다.

 

 

반응형

'- DB' 카테고리의 다른 글

[MySQL/Oracle] 데이터 있으면 update, 없으면 insert  (0) 2020.10.29
[MySQL, Maria] 계정 생성 및 권한 부여  (0) 2020.08.23
[Oracle, MySQL, MSSQL] PROCEDURE  (0) 2020.07.14
[MySQL] int(11), ZEROFILL  (0) 2020.07.14
[MyBatis] #, $ 차이  (0) 2020.06.23