oracle 主键自增函数_oracle中如何设置自增主键

首先,你要有一张表!

CREATE TABLE example(

ID Number(4) NOT NULL PRIMARY KEY,

NAME V

ARCHAR(25),

PHONE V

ARCHAR(10),

ADDRESS V

ARCHAR(50));

如果对于以上的建表语句还有疑问的话

,

建议您不要继续了

!

有那么些时间您还不如去

看看金庸读读琼瑶

!

然后,你需要一个自定义的

sequence

CREATE SEQUENCE emp_sequence

INCREMENT BY 1 --

每次加几个

START WITH 1 --

1

开始计数

NOMAXV

ALUE --

不设置最大值

NOCYCLE --

一直累加,不循环

NOCACHE --

不建缓冲区

以上代码完成了一个序列

(sequence)

的建立过程

,

名称为

emp_sequence,

范围是从

1

开始

到无限大

(

无限大的程度是由你机器决定的

),nocycle

是决定不循环

,

如果你设置了最大值那

么你可以用

cycle

会使

seq

到最大之后循环

.

对于

nocache

顺便说一下如果你给出了

cache

那么系统将自动读取你的

cache

值大小个

seq

,

这样在反复操作时会加快运行速度

,

但如果遭遇意外情况如当机了或

oracle

死了

,

则下次

取出的

seq

值将和上次的不连贯

.(

如果连不连贯无所谓建议用

cache,

因为时间就是金钱呀

!

题了!

)

书接上文,你只有了表和序列还不够,还需要一个触发器来执行它!代码如下:

CREATE TRIGGER "

触发器名称

" BEFORE

INSERT ON example FOR EACH ROW WHEN (new.id is null)

begin

select emp_sequence.nextval into: new.id from dual;

end;

打完收工!下面你就试试插入数据吧!

INSERT INTO example(Name,phone,address) Values(''Cao'',''56498543'',''Heibei'');

=============================================================

ORACLE SEQUENCE

的简单介绍

(

自增长字段

)- -

oracle

sequence

就是所谓的序列号,每次取的时候它会自动增加,一般用在需要

按序列号排序的地方。

1

CreateSequence

你首先要有

CREATESEQUENCE

或者

CREATEANYSEQUENCE

权限,

CREATESEQUENCEemp_sequence

INCREMENTBY1--

每次加几个

STARTWITH1--

1

开始计数

NOMAXV

ALUE--

不设置最大值

NOCYCLE--

一直累加,不循环

CACHE10;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值