在Oracle 11g中,我考虑创建一个如下所示的表:
CREATE TABLE SOME_TABLE (
MACHINE_ID NUMBER(10,0) NOT NULL ENABLE,
CYCLE_ID NUMBER NOT NULL ENABLE,
START_TIME TIMESTAMP (6) NOT NULL ENABLE,
DATA VARCHAR2(255),
CONSTRAINT "PK_SOME_TABLE" PRIMARY KEY ("MACHINE_ID", "CYCLE_ID")
)
此表每天将收到约250万条记录。
CYCLE_ID取自序列,是主键的一部分。
我担心为这个数据量使用CYCLE_ID的序列是一个坏主意,因为序列将在某个时间点重新开始,从而导致重复的键错误。
从表中删除CYCLE_ID会更好吗,从而使表没有唯一键吗?如果没有唯一的主键,这么大的数据表会有什么问题呢?
非常感谢。
答案 0 :(得分:1)
根据我的观点,不要从表中删除序列而是改变序列。从序列中删除循环子句。这将解决您的问题,因为序列永远不会变为0,您的表将始终具有主键。