您能否分享一些关于 Oracle 中具有临时有效性的表的主键操作的信息?
我创建了一个具有以下架构的表
Create table TemporalTable_1 (
Customer_ID number(8),
Customer_name varchar2(100),
valid_period_start timestamp,
valid_period_end timestamp,
period for valid_period(valid_period_start, valid_period_end),
constraint TemporalTable_1_PK primary key (Customer_ID , VALID_PERIOD)
)
我有来自另一个表“OtherTable”的以下记录,我需要复制到 TemporalTable_1
客户ID | 客户名称 | 有效周期开始 | Valid_Period_end ------------------+------------------------+-------- -----------------+------------------------ 00001 | 约翰·陈 | 2020 年 6 月 1 日 00:00:00 | 2020 年 6 月 9 日 23:59:59 00001 | 强尼陈 | 2020 年 6 月 10 日 00:00:00 | 空值
以下是我的脚本:
insert into TemporalTable_1 select * from OtherTable;
ORA-00001: 违反了唯一约束 (TemporalTable_1)
在执行插入语句之前,表是空白的。所以我的问题是为什么我不允许将该行复制到 TemporalTable_1 中,即使这些行具有不同的 valid_period。
是不是因为Oracle实际上并不关心主键上的有效期列?
提前致谢!