@Mureinik уже сказал, что в Oracle 12 и более поздних версиях вы можете определить свой столбец первичного ключа как NUMBER GENERATED ALWAYS AS IDENTITY
, чтобы получить уникальное последовательное значение.
Для принудительного установления однозначного отношения вбазе данных вы хотите, чтобы ваш столбец ROLE_ID
был определен как первичный ключ в одной таблице и как ключ UNIQUE или PRIMARY во второй таблице с отношением внешнего ключа между таблицами.Другими словами:
CREATE TABLE T1 (ROLE_ID NUMBER
CONSTRAINT PK_T1
PRIMARY KEY
...);
CREATE TABLE T2 (ID_T2 NUMBER
PRIMARY KEY,
ROLE_ID NUMBER
CONSTRAINT T2_U1
UNIQUE
CONSTRAINT T2_FK1
REFERENCES T1(ROLE_ID)
ON DELETE CASCADE,
...);
После того, как вышеупомянутое ROLE_ID
будет первичным ключом на T1, уникальный ключ на T2, и T2.ROLE_ID будет внешним ключом к T1.
Удачи.