首先,你要有一张表!
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;