Как иметь несколько последовательностей в зависимости от значения конкретного столбца в Oracle
; то есть новый Sequence
для каждого разного значения для этого столбца.Автоматический сложный составной ключ 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
при условии, что первичный ключ один атрибут. Как иметь отдельный Sequence
для каждого уникального значения в столбце TYPE
?
Я думал о создании нескольких Sequences
для каждого возможного значения в TYPE
, создавая Trigger
для каждого Sequence
и добавления if
условия для флирта на основе TYPE
значения столбца. Но я понял, что это неправильный подход, так как мне нужно создать новые Sequence
и Trigger
для любых новых TYPE
.
выборки данных должны быть похожи на следующее:
TYPE SERIAL_NUM
X 1
X 2
X 3
Y 1
Y 2
Z 1
Z 2
Z 3
Z 4
Любые предложения ...
Что мешает вам использовать одну последовательность для всех типов? –
Что такое бизнес-проблема, которую вы хотите решить? Почему у вас есть требование, чтобы строка 'serial_num' была 1 для' type' A, а затем еще одна строка с 'serial_num' из 1 для' type' B? Какая проблема возникает из-за уникальности значений serial_num? Надеюсь, вы не пытаетесь создать набор значений без пробелов ... –
На самом деле, ничто не мешает мне иметь уникальный серийный номер для каждого элемента. Я спрашивал, возможно ли это. Кроме того, что заставляет меня думать об этом, так это то, что у меня есть 'TYPE'column, который является частью первичного ключа, и я думал, что данные будут более организованными и более легкими для прохождения через @FrankSchmitt @JustinCave – Salman