like this: create sequence seq_name increment by 1 start with 1;create table t1(a int);insert into t1 values (seq_name.nextval);select seq_name.nextval from dual; select seq_name.currval from dual;
在sql server中存在自增列之说,但是在oracle中没有这样的说法,所以oracle为了实现这样的问题产生了sequence 这个奇怪的东西 创建sequence: create sequence seq_name increment by 1 start with 1; --表示创建一个名称为seq_name的sequence,起始值从1开始,每次增加1 获取sequence当前值: select seq_name.currval from dual; --这个操作sequence的值保持一个最后一次使用seq_name.nextval后固定的值 获取sequence的下一个值: select seq_name.nextval from dual; --这个操作每做一次,sequence的值增加1 当然你也可以设定不从1开始,可以设定每次增加一个自己定义的数字,sequence也可以设定最大值,到最大值后循环
?Used with the VALUES clause on an INSERT command. ?Used with the SELECT subclause of a SELECT command. ?Used in the SET clause of an UPDATE command.
create sequence seq_name increment by 1 start with 1;create table t1(a int);insert into t1 values (seq_name.nextval);select seq_name.nextval from dual;
select seq_name.currval from dual;
创建sequence:
create sequence seq_name increment by 1 start with 1;
--表示创建一个名称为seq_name的sequence,起始值从1开始,每次增加1
获取sequence当前值:
select seq_name.currval from dual;
--这个操作sequence的值保持一个最后一次使用seq_name.nextval后固定的值
获取sequence的下一个值:
select seq_name.nextval from dual;
--这个操作每做一次,sequence的值增加1
当然你也可以设定不从1开始,可以设定每次增加一个自己定义的数字,sequence也可以设定最大值,到最大值后循环
?Used with the SELECT subclause of a SELECT command.
?Used in the SET clause of an UPDATE command.