pc
配置好的PLSQL
首先创建一个测试表test(这里取得是emp表中的三列,数据为空)。create table test as select t.empno ,t.ename,t.deptno from emp t。现在使用序列让empno自增长
创建一个序列(属性默认)。语法:create sequence 序列名;create sequence test_empno;
在用户字典中查看创建的序列(所有创建的序列对象都在用户字典中存放,里面存有序列名称、序列最小值、序列最大值,步长等信息)select * from user_sequences
使用序列添加数据(这里用到序列的属性nextval)使用时语法:序列对象.nextvalinsert into test(empno,ename,deptno)values(test_empno.nextval,'张三',10);insert into test(empno,ename,deptno)values(test_empno.nextval,'肖九',10);insert into test(empno,ename,deptno)values(test_empno.nextval,'李四',10);insert into test(empno,ename,deptno)values(test_empno.nextval,'王五',10);insert into test(empno,ename,deptno)values(test_empno.nextval,'赵六',10);insert into test(empno,ename,deptno)values(test_empno.nextval,'田七',10);insert into test(empno,ename,deptno)values(test_empno.nextval,'钱八',10);此时empno字段就实现了自增。
创建自定义序列。CREATE SEQUENCE test_deptno MINVALUE 10 --定义序列最小值 START WITH 10 ---定义序列开始值 NOMAXVALUE ---定义序列最大值 INCREMENT BY 10 ---定义序列步长 NOCYCLE ---定义当序列增长到最大值或者减小到最小值,从新从开始值继续 CACHE 30 ---是否产生序列号预分配,并存储在内存中
清空测试表数据delete from test;
向test表中添加新数据(实现empno自增,deptno间隔10增长)insert into test(empno,ename,deptno)values(test_empno.nextval,'张一',test_deptno.nextval);insert into test(empno,ename,deptno)values(test_empno.nextval,'张二',test_deptno.nextval);insert into test(empno,ename,deptno)values(test_empno.nextval,'张三',test_deptno.nextval);insert into test(empno,ename,deptno)values(test_empno.nextval,'张四',test_deptno.nextval);insert into test(empno,ename,deptno)values(test_empno.nextval,'张五',test_deptno.nextval);insert into test(empno,ename,deptno)values(test_empno.nextval,'张六',test_deptno.nextval);
删除序列drop sequence test_empno;