У меня есть вопрос относительно первичного ключа для Oracle Таблица с периодом.
Я создал две таблицы, подобные следующим:
create table el_temporal_try( -- Parent Table
id number(10) not null,
ColumnA varchar(10),
constraint el_temporal_try_pk primary key (id),
period for valid_period
);
create table el_temporal_try_son( -- Son Table
id number(10) not null,
ColumnA varchar(10),
parent_id number(10),
constraint el_temporal_try_FY foreign key (parent_id) references el_temporal_try(id),
period for valid_period
);
Этот сценарий успешно пройден. Однако у меня проблема со вставкой данных:
Я выполнил следующие два оператора вставки в родительскую таблицу:
1-й: оператор
insert into el_temporal_try
(id, columnA,valid_period_start, valid_period_end)
values
(1,'A',sysdate - 10, sysdate - 9);
Результат:
1 строка вставлена.
2-й: оператор
insert into el_temporal_try
(id, columnA,valid_period_start, valid_period_end)
values
(1,'B',sysdate - 8, sysdate - 7);
Результат
ORA-00001: уникальное ограничение (PBSVW.EL_TEMPORAL_TRY_PK) нарушено
Я понимаю, что это из-за столбца "ID". Тем не менее, мои проблемы из-за того, что эти две строки относятся к другому периоду, должны ли они быть разрешены?
Я намеревался использовать этот период для функции, чтобы захватить историю изменений записи в качестве альтернативы воспоминанию. Однако означает ли это, что в этой ситуации мне не следует использовать первичный ключ?
Заранее спасибо!