新建序列 create sequence name 删除序列 drop sequence 序列名 如果指定CACHE值,oracle就可以预先在内存里面放置一些 sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。 但是要注意的是:第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL总是返回当前sequence的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。 ----------------------------创建测试表------------------ -----------------------------使用序列------------------- --------------------序列使用结果查询----------------- 触发器 1 CREATE or replace TRIGGER "触发器名称" BEFORE 删除触发器 drop trigger 触发器名称 2 create or replace trigger trigger_name declare BEGIN FETCH cur INTO i; if i is NULL then Close cur; END; 其中:your_sid为数据库的当前用户SID,tablename为表名,id为列名 序列提供两个方法,NextVal和CurrVal。顾名思义,NextVal为取序列的下一个值,一次NEXTVAL会增加一次sequence的值;CurrVal为取序列的当前值。 |
oracle中设置自增主键
最新推荐文章于 2023-05-22 17:54:43 发布