오라클 SEQUENCE를 사용하지 않고(권한 문제) 해보려 합니다.
현재 로직: 예를 들어, A라는 테이블에 년도별로 정리된 데이터가 있는 상태에서 해당 년도에 데이터를 추가할 때 sequence를 증가시키며 저장하려고 합니다.
이 때 sequence를 가져오는 규칙은, 현재는 해당 년도에 저장된 데이터 개수 + 1로 가져온 뒤 sequence를 1 증가시켜 넣습니다. 그런데 이런 경우 동시에 A테이블 바라보고 같은 값을 넣을 수 있기 때문에 무결성 오류가 날 수 있습니다.
그래서 identity column이라는 것을 찾았는데 이것은 한 테이블 안에서 년도별로(핵심:년도별 sequence 값 초기화) 관리하기가 어려워 보입니다.
이런 상황에서 어떤 아이디어가 있을까요? 고민 하다가 올립니다.
일단...
PK를 인조키로 사용하려면 PK에 사용하는 숫자에 의미를 두지 마세요.
의미가 필요하다면 컬럼 따로 두시면 됩니다.
예를 들어 a10001 , a10002 , b10001 , b10002 이런식으로 PK를 만들지 말라는 말입니다.
필요하다면 a1 , 10001 분리해서 컬럼으로 만드세요.
년도별로 숫자별이 왜 필요하지 설명이 필요하네요. 이게 PK인지도 확실하지 않네요.
그런데 sequence는 무결성 오류나는데
년도별로(핵심:년도별 sequence 값 초기화) 관리 <= 이건 무결성 오류 안나나요?
답변 감사드립니다. 제가 질문을 좀 애매하게 한 것 같네요. 다시 정리해서 최근 글로 다시 등록했습니다 ㅜㅜ