先简单的创建一个表:
建表
create table user_1(
usid number(2) primary key,
username varchar(50) not null,
password varchar(50) not null,
age number(3) not null,
sex char(3) not null,
birthday DATE
)
#添加数据
insert into user_1 values(1,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
insert into user_1 values(2,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));

接下来可以创建序列,先来一个默认的序列(自定义序列在文章末尾):
#创建序列----别把序列的名字忘了
create sequence user_1_seq;
“Currval”------用来获取该序列的当前值
“Nextval”------用来获取该序列的下一个值.
现在我们已经创建过序列了,但是我们需要将序列添加到我们的表中:
#初始化序列
select user_1_seq.nextval from user_1;
然后我们试试获取当前序列值
#获取当前序列值
select user_1_seq.currval from user_1;

重点来了!
接下来是一系列的操作和一系列的结果
#删除表
drop table user_1;
#删除序列
drop sequence user_1_seq;
#建表
create table user_1(
usid number(2) primary key,
username varchar(50) not null,
password varchar(50) not null,
age number(3) not null,
sex char(3) not null,
birthday DATE
);
#创建序列
create sequence user_1_seq;
#添加数据
insert into user_1 values(1,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
insert into user_1 values(2,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
#初始化序列
select user_1_seq.nextval from user_1;
#获取当前序列值
select user_1_seq.currval from user_1;
#查询当前数据
select * from user_1;

到这里还算正常,往下看.
#初始化序列
select user_1_seq.nextval from user_1;

怎么自己增长了???

测试:
#获取当前序列值
select user_1_seq.currval from user_1;

通过当前序列添加数据---->currval方法
#通过序列来创建数据
insert into user_1 values(user_1_seq.currval,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));
#查询数据
select * from user_1;

#获取当前序列值
select user_1_seq.currval from user_1;

通过下一个序列添加数据---->nextval方法
insert into user_1 values(user_1_seq.nextval,'jk','jk',19,'女',to_date('2002-03-18','YYYY-MM-DD'));

#查询序列
select user_1_seq.currval from user_1;

结论
每次使用nextval方法之后我们的序列都会进行增长,因为nextval是为了获取下一个序列值.
currval则是获取当前值,更多的是用于查看数据和插入数据.
#创建序列
create sequence 序列名;
#初始化序列给某个表
select 序列名.nextval from 表明;
#获取当前序列值
select 序列名.currval from 表明;
#删除序列
drop sequence 序列名;
自定义序列参考:
https://www.cnblogs.com/edwardsun/p/3488768.html
create sequence product_sequence
start with 1 --初始值默认为1
increment by 1--每次增量默认为1
maxvalue 10 --增量的最大上限
minvalue 1--增量的最小底限
cycle
nocache ;

本文详细介绍了在Oracle数据库中如何创建、使用和管理序列。包括序列的基本概念,如何创建序列,如何使用NEXTVAL和CURRVAL获取序列值,以及如何将序列与表结合使用。同时,也探讨了序列在数据插入过程中的应用。
624

被折叠的 条评论
为什么被折叠?



