序列号是在业务系统中很重要的编号他是许多记录的唯一ID,下面总结一下得到序列号的方法。
1。程序生成
这是最好想象的,我们用程序来按照固定的方式生成自己想要的序列号。
然后用Oracle 来控制号码的唯一性。这种方法很多,基本上可以结合下面的方法来使用。
2。Oralce本身提供的字增长列 ------------这条内容是转贴
create sequence name
increment by x //x为增长间隔
start with x //x为初始值
maxvalue x //x为最大值
minvalue x //x为最小值
cycle //循环使用,到达最大值或者最小值时,从新建立对象
cache x //制定缓存序列值的个数
--
----------------------一个例子-----------------------
create
sequence for_test
--
序列名
increment
by
1
--
每次增加1
start
with
1
--
从1开始
nomaxvalue
--
没有最大值
nocache
--
没有缓存序列
--
--------------------------创建测试表------------------
create
table
Test
(
TestID
int
primary
key
,
TestName
varchar2
(
20
)
not
null
,
Tdescription
varchar2
(
200
)
null
)
--
---------------------------使用序列-------------------
insert
into
Test
values
(for_test.nextval,
'
序列测试
'
,
'
这是一个序列使用的例子
'
)
--
------------------序列使用结果查询-----------------
select
*
from
test
----------------------------------- 更改序列命令
ALTERSEQUENCE [user.]sequence_name
[INCREMENT BY n]
[MAXVALUE n| NOMAXVALUE ]
[MINVALUE n | NOMINVALUE];
修改序列可以:
? 修改未来序列值的增量。
? 设置或撤消最小值或最大值。
? 改变缓冲序列的数目。
? 指定序列号是否是有序。
---------------------------------删除序列命令
DROP SEQUENCE [user.]sequence_name;
从数据库中删除一序列。
3。SQL记录的序号
这个做报表的时候我要显示序号,但又不想用程序生成。
因为程序写的话要再写一个循环,这样速度就慢了,所以我们就用rownum,这是Oracle的一个关键字
select rownum, aa from table
就这么简单。上面道的方法善用的话 应该可以得到想要的序列号。