【发布时间】:2012-04-01 12:54:43
【问题描述】:
我在 ORACLE 10 DB 上开发了以下序列,该序列通过 1 自动增加名为 t_client 的表的 id 列(还开发了一个触发器并在何时执行此表上的新数据已注册)
问题是有时序列不会增加 1,如果不是在 21。我并没有真正通过 21 的增量找到问题。这是代码示例
Secuence 客户端连续
CREATE SEQUENCE user_owner.ClientConsecutive
MINVALUE 0
MAXVALUE 999999999999999999999999999
INCREMENT BY 1
START WITH 1
CACHE 20
NOORDER NOCYCLE ;
Trigger_Client_ID
create or replace
TRIGGER user_owner.TRIGGER_CLIENT_ID
BEFORE INSERT ON T_CLIENT
REFERENCING NEW AS NEW FOR EACH ROW
DECLARE valueSequence NUMBER := 0;
BEGIN
SELECT ClientConsecutive.NEXTVAL INTO valorSecuencia FROM DUAL;
:NEW.ID_CLIENTE := valueSequence;
END;
当与此对象关联的应用程序执行它时,在 SQLdeveloper 上查找序列详细信息有时会可视化
LAST_NUMBER 2
当我在空表上注册新数据时这是正确的,但有时会说
LAST_NUMBER 21
有什么想法吗?
【问题讨论】:
标签: triggers oracle10g sequence auto-increment