У меня вопрос относительно первичного ключа для таблицы 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». Однако следует ли разрешить мои проблемы из-за того, что эти две строки относятся к разному периоду?
Я планировал использовать этот период для функции захвата истории изменений записи в качестве альтернативы ретроспективному кадру. Однако означает ли это, что я не должен использовать первичный ключ в этой ситуации?
Заранее спасибо!