Oracle
의 특정 열 값에 따라 여러 시퀀스를 갖는 방법; 즉, 해당 열의 각기 다른 값에 대해 새 Sequence
입니다.자동 Incremant 복합 키 Oracle
표는 다음과 같습니다
CREATE TABLE TEST
(
TYPE VARCHAR2(20) NOT NULL ,
SERIAL_NUM INT NOT NULL,
CONSTRAINT TEST_PK PRIMARY KEY
(
TYPE,
SERIAL_NUM
)
ENABLE
);
이 링크 :
How to create id with AUTO_INCREMENT on Oracle?는 기본 키는 하나 개의 속성이라고 가정 자동 증분 Sequence
를 생성하는 방법을 보여줍니다. TYPE
열의 고유 값 각각에 대해 Sequence
을 구분하는 방법은 무엇입니까?
I는 TYPE
각 가능한 값을 만드는 여러 Sequences
각 Sequence
대한 Trigger
을 만들고 TYPE
열 값에 기초 유혹 if
위한 조건을 추가하는 것을 생각 하였다. 그러나 새로운 TYPE
을 추가하기 위해 새로운 Sequence
및 Trigger
을 새로 작성해야하므로 올바른 방법이 아님을 알았습니다.
샘플 데이터는 다음과 비슷해야합니다
TYPE SERIAL_NUM
X 1
X 2
X 3
Y 1
Y 2
Z 1
Z 2
Z 3
Z 4
어떤 제안 ...
모든 유형에 대해 단일 시퀀스를 사용하지 못하게하는 이유는 무엇입니까? –
해결하려는 비즈니스 문제는 무엇입니까? 왜'serial_num '이'type' A에 대해 1이고'serial_num'이'type' B에 대해 1 인 행이 필요하다는 요구 사항이 있습니까? 'serial_num' 값이 유일 할 때 어떤 문제가 발생합니까? 다행스럽게도 갭이없는 값 집합을 만들려고하지는 않기를 바랍니다 ... –
사실, 각 항목에 대해 고유 한 일련 번호를 가질 수 없습니다. 나는 그것이 가능한지 묻고 있었다. 또한 내가 생각할 수있는 것은 기본 키의 일부인'TYPE' 칼럼을 가지고 있으며, 데이터가 더 체계적이고 쉽게 전달 될 것이라고 생각했습니다. @FrankSchmitt @JustinCave – Salman