赞
踩
- --创建序列语法:
- CREATE SEQUENCE sequence //创建序列名称
- [INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
- [START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
- [{MAXVALUE n | NOMAXVALUE}] //最大值
- [{MINVALUE n | NOMINVALUE}] //最小值
- [{CYCLE | NOCYCLE}] //循环/不循环
- [{CACHE n | NOCACHE}];//分配并存入到内存中
-
-
- --创建案例:
- --创建sequence
- create sequence seq_on_test
- increment by 1
- start with 1
- nomaxvalue
- nocycle
- nocache;
-
- --建表 :
- drop table test;
- create table test(
- ID integer ,
- stu_name varchar2(4)
- );
-
- --插入数据 :
- insert into test values(seq_on_test.nextval,'A');
- insert into test values(seq_on_test.nextval,'B');
-
-
- --seq的两个方法 :
- select seq_on_test.currval from dual;
- select seq_on_test.nextval from dual;
-
- --nextval 返回序列中下一个有效的值,任何用户都可以引用
- --currval 中存放序列的当前值
- -- nextval 应在 currval 之前指定 ,二者应同时有效
-
- --修改序列
- //修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内存
- alter SEQUENCE sequenceName //创建序列名称
- [INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1
- [START WITH n] //开始的值,递增默认是minvalue 递减是maxvalue
- [{MAXVALUE n | NOMAXVALUE}] //最大值
- [{MINVALUE n | NOMINVALUE}] //最小值
- [{CYCLE | NOCYCLE}] //循环/不循环
- [{CACHE n | NOCACHE}];//分配并存入到内存中
-
- 修改序列的注意事项:
- l 必须是序列的拥有者或对序列有 ALTER 权限
- l 只有将来的序列值会被改变
- l 改变序列的初始值只能通过删除序列之后重建序列的方法实现
-
- --删除序列:
- l 使用DROP SEQUENCE 语句删除序列
- l 删除之后,序列不能再次被引用
- -- 使用触发器实现ID递增
- -- 创建序列
- CREATE SEQUENCE auto;
-
- -- persons_tri 触发器名字
- -- person 表名
- -- AUTO.nextval AUTO表示刚刚创建的序列
- -- personid 表示自增的字段
-
- CREATE TRIGGER persons_tri
- BEFORE INSERT ON person
- FOR EACH ROW
- DECLARE
- BEGIN
- SELECT AUTO.nextval
- INTO :NEW.personid
- FROM dual;
- END;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。