ORACLE中自增列的实现

Posted on 2008-08-14 16:34  肥蛋  阅读(1687)  评论(1)    收藏  举报

一、创建表格

要自增的列数据类型是NUMBER,不能为LONG

 

二、创建序列(SEQUENCE)

CREATE SEQUENCE s_id NOMAXVALUE NOCYCLE

 

三、创建触发器(TRIGGER)

CREATE OR REPLACE TRIGGER BEFORE_INSERT_T_XXX
  BEFORE 
INSERT ON "T_XXX" FOR EACH ROW
begin
  
select s_id.nextval into :new.COL_ID from dual;
end;

 

注意:网上有些帖子讲的

:new.COL_ID := s_id.nextval;
是行不通的,会出 PLS-00357 错误:在此上下文中不允许表,视图或序列引用

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3