随笔:-4 文章:58 评论:4 引用:0
静水流深......
I think I can do it
首页
发新随笔
发新文章
联系
聚合
管理
[Oracle] Sequence简单介绍
Oracle中提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方.下面就主要介绍一下关于sequence对象的
生成
,
修改
,
删除
等常用的操作:
1.
生成
Sequence
首先用户要有
CREATE SEQUENCE
或者
CREATE ANY SEQUENCE
权限.然后使用下面命令生成sequence对象:
CREATE
SEQUENCE emp_sequence
INCREMENT
BY
1
--
每次加几个
START
WITH
1
--
从1开始计数
NOMAXVALUE
--
不设置最大值
NOCYCLE
--
一直累加,不循环
CACHE
10
;
[
说明
]
如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
一旦定义了emp_sequence,你就可以用
CURRVAL
,
NEXTVAL
来使用
sequence:
sequence.CURRVAL
--
返回 sequence的当前值
sequence.NEXTVAL
--
增加sequence的值,然后返回 sequence 值
[
说明
]
第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次 SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就是不一样的。
2.
修改 Sequence
用户或者是该sequence的
owner
,或者有
ALTER ANY SEQUENCE
权限才能改动sequence. 可以alter除start至以外的所有sequence参数.
如果想要改变
start
值,必须 drop sequence 再 re-create.
命令格式如下:
ALTER
SEQUENCE emp_sequence
INCREMENT
BY
10
MAXVALUE
10000
CYCLE
--
到10000后从头开始
NOCACHE ;
3.
删除 Sequence
DROP
SEQUENCE order_seq;
久久不醉
发表于 2008-10-23 10:04
久久不醉
阅读(188)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
CALENDER
<
2008年10月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
留言簿
给我留言
查看公开留言
查看私人留言
随笔档案
(54)
2010年4月 (1)
2010年3月 (1)
2009年12月 (2)
2009年9月 (6)
2009年8月 (2)
2009年6月 (2)
2009年4月 (1)
2009年3月 (5)
2009年2月 (3)
2008年12月 (6)
2008年10月 (5)
2008年4月 (3)
2008年3月 (1)
2007年10月 (1)
2007年9月 (3)
2007年8月 (5)
2007年7月 (7)
文章分类
Flex学习
(rss)
Struts源码学习
(rss)
搜索
最新评论
1. re: 使用xfire+spring编写webservice(服务端)[未登录]
能否贴出文件目录结构
--hiker
2. re: 简单工厂模式与工厂方法模式的比较
中文做类名是这篇文章的败笔~
--asd
3. re: 使用xfire+spring编写webservice(服务端)
tusahngjie
--tusahngjie
4. re: 使用xfire+spring编写webservice(服务端)
asgsadf
--tusahngjie
Powered By:
博客园
模板提供
:
沪江博客