在Oracle中,序列(Sequence)常被用于实现自增主键

mac2024-11-05  15

在Oracle中,序列(Sequence)常被用于实现自增主键。

创建一个序列
CREATE SEQUENCE sequence_name MINVALUE value MAXVALUE value START WITH value INCREMENT BY value CACHE value; MAXVALUE的默认值为 999999999999999999999999999。CACHE可以是具体的数值指定特定个数的数列被缓存内存待使用,提高效率,但是宕机后这些序列值将不可用,新的序列将会是缓存的最大值+increment的值。指定NOCACHE将不适用缓存。
引用序列值
sequence_name.nextval
序列的删除
DROP SEQUENCE sequence_name;
序列的修改
ALTER SEQUENCE sequence_name action;

action支持创建序列时指定的选项,比如INCREMENT BY 10会修改序列每次加10。

序列值作为主键的值插入数据库
CREATE SEQUENCE myseq MINVALUE 1 MAXVALUE 999999999999999999999999999 START WITH 1 INCREMENT BY 1 CACHE 20; create table nothing(id integer, name varchar2(256))); insert into nothing values(myseq.nextval, 'nothing');
sqlldr中的序列生成方法

sqlldr中具有方法

sequence(OPTION, INCREMENT)

函数可以为导入的数据自动填充序列值。 OPTION可能的值为:

具体的数值,表示以此数值未开始max 表示使用已有数据的当前最大值为开始值count 表示使用已有的数据量为开始值 INCREMENT为具体数值表示序列增幅。
最新回复(0)