sequence怎么用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sequence怎么用?相关的知识,希望对你有一定的参考价值。
在(plsql)一个已有的表里面加一行序列号,是不是用sequence实现的?如何实现?
(不是一个无数据的表),要在一个已有很多行数据的表里面该怎么插入?
sequence有两个用法,一个是得到后面一个值,一个是得到当前序列号的值
sequence.nextval得到是下一个序列号值
sequence.currval得到是当前序列号的值
你可以用select sequence.currval from seq
序列号建完后就入表里面插入
insert into table (id,name,age) values (seq.nextval,'刘翔','20');
这样就ok了 参考技术A 不知道你说的是什么数据库的,我只会点oracle,下面是oracle下建序号的代码:
create sequence sequence_name
increase by 1 --(这里1是增量,你可以设成别的数)
start with 1000 --(初值)
nomaxvalue
nocycle
nocache
然后将序列插入表中:
insert into table_name values(sequnce_name.nextval,column_name......);
想实现自动增长只能用触发器:
create or replace trigger trigger_name
before insert on table_name for each row
begin
select seqence_name.nextval into:new.column_name from dual;
end trigger_name;
oracle中的sequence
1、什么是sequence?
在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系。
2、sequence的作用?
当需要建立一个自增字段时,需要用到sequence
3、用sequence的优点、缺点,及不用sequence时该怎么办?
4、sequence的基本用法?
(1)创建
CREATE SEQUENCE SEQUENCENAME
minvalue:序列最小值
maxvalue/nomaxvalue:序列最大值/没有最大值
start with 1:序列从1开始
increment by 1:每次增加1
cache/nocache:nocache不缓存。cache缓存。开启缓存,效率高,只是如果数据库宕机了,缓存丢失,会出现序列跳号情况。
nocycle:一直累加,不循环
(2)查看已有sequence
select * from all_sequences;
(3)得到sequence值
elect SEQUENCE_NAME.nextval from sys.dual;
定义好sequence后,你就可以用currVal,nextVal取得值。
CurrVal:返回 sequence的当前值
NextVal:增加sequence的值,然后返回 增加后sequence值
以上是关于sequence怎么用?的主要内容,如果未能解决你的问题,请参考以下文章
怎么在sql servler2000中建立一个序列,用sequence写的