什么是选项CACHE?
CREATE SEQUENCE Race_SEQ
START WITH 1
INCREMENT BY 1
CACHE 10;
CREATE OR REPLACE TRIGGER RACE_INC
BEFORE INSERT ON RACE
FOR EACH ROW
BEGIN
:NEW.RACE_ID := RACE_SEQ.NEXTVAL;
END;
答案 0 :(得分:2)
您可以使用相同的序列为许多表生成主键。这样做通常没有多大意义,但你可以做到。如果使用race_seq
来填充race
表并且foo_seq
用于表示foo
,则通常不会花费任何成本来获得许多不同的序列。填充cache
表,而不是让所有表使用相同的序列。
每个表需要一个触发器。触发器只能在单个表上定义。
{{1}}属性指定应缓存序列的值(如果您恰好使用RAC,则为每个节点)。这使得生成新值更有效,代价是增加创建的间隙数量。通常,您可以使用较大的缓存来插入更频繁的行。