기존에 만들어진 Serial 의 값을 변경을 하려면 Alter Serial 구문을 이용해야 한다고 설명서에 적혀 있네요.
이때 "몇 가지 유효성 검증이 수행되는데, MINVALUE는 현재 값보다 작아야 하고 MAXVALUE는 현재 값보다 작을 수 없다."
라는 제약사항이 있습니다. 해서 소위 말하는 초기화를 시키기 위해서는 기존 시리얼을 삭제하고, 새로운 시리얼을 등록해야
될 것 같은데요
근데, 시스템 테이블을 살펴 보던 중 "db_serial" 이란 테이블에 현재 serial 에 정보가 들어 있더군요.
해서 다음과 같은 쿼리를 이용해 현재 값을 변경해보았습니다.
" update db_serial set current_val = 1 where name = '시리얼이름' "
그다음 "select 시리얼이름.next_value from db_root" 라고 해보니 원하던 결과대로
순차적으로 잘 나오더라구요.
update 쿼리를 이용해 시리얼의 현재 값을 변경 할 경우 문제가 발생하나요?
이때 "몇 가지 유효성 검증이 수행되는데, MINVALUE는 현재 값보다 작아야 하고 MAXVALUE는 현재 값보다 작을 수 없다."
라는 제약사항이 있습니다. 해서 소위 말하는 초기화를 시키기 위해서는 기존 시리얼을 삭제하고, 새로운 시리얼을 등록해야
될 것 같은데요
근데, 시스템 테이블을 살펴 보던 중 "db_serial" 이란 테이블에 현재 serial 에 정보가 들어 있더군요.
해서 다음과 같은 쿼리를 이용해 현재 값을 변경해보았습니다.
" update db_serial set current_val = 1 where name = '시리얼이름' "
그다음 "select 시리얼이름.next_value from db_root" 라고 해보니 원하던 결과대로
순차적으로 잘 나오더라구요.
update 쿼리를 이용해 시리얼의 현재 값을 변경 할 경우 문제가 발생하나요?
시리얼 초기화 또는 현재 보다 작은 값으로 변경할 경우 시리얼 포함하여 입력하는 컬럼에 unique 제약 사항이 있을 경우 데이터 중복으로 인하여 unique 오류가 발생할 수 있습니다.
만약, unique 제약사항이 없는 컬럼이고 데이터 중복 관련 이슈가 없다면 문제는 없을 것으로 보입니다.