如何使用Oracle序列:
創(chuàng)新互聯(lián)公司是一家網(wǎng)站建設、成都做網(wǎng)站,提供網(wǎng)頁設計,網(wǎng)站設計,網(wǎng)站制作,建網(wǎng)站,按需開發(fā),網(wǎng)站開發(fā)公司,于2013年成立是互聯(lián)行業(yè)建設者,服務者。以提升客戶品牌價值為核心業(yè)務,全程參與項目的網(wǎng)站策劃設計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。
Oracle序列(sequence)是一種數(shù)據(jù)庫項,能夠生成一個整數(shù)序列。通常用于填充數(shù)字類型的主鍵列。
1、創(chuàng)建序列:
CREATE SEQUENCE sequence_name
[START WITH start_num]
[INCREMENT BY increment_num]
[{MAXVALUE maximum_num|NOMAXVALUE}]
[{MINVALUE minimum_num|NOMINVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE cache_num|NOCACHE}]
[{ORDER|NOORDER}]
其中:
start_num:序列開始整數(shù)
increment_num:每次增加的整數(shù)增量
maximum:序列最大整數(shù)
minimum:序列最小整數(shù)
CYCLE:循環(huán)生成
NOCYCLE:不循環(huán)生成,默認值
cache_num:保存在內(nèi)存中的整數(shù)的個數(shù)
NOCACHE:不緩存任何整數(shù)
例如:
CREATE SEQUENCE seq_test;(默認值)
CREATE SEQUENCE seq_test START WITH 1 INCREMENT BY 2;
2、使用序列:
SELECT seq_test.nextval FROM dual;
insert into order_status2 (id) values (seq_test.nextval);
3、修改序列:
ALTER SEQUENCE語句來修改序列。可以修改的內(nèi)容:
不能修改序列的初值
序列的最小值不能大于當前值
序列的最大值不能小于當前值
例如:ALTER SEQUENCE seq_test INCREMENT BY 3;
4、刪除序列:
DROP SEQUENCE seq_test;
查詢序列使用:
在表DBA_SEQUENCES,USER_SEQUENCES,ALL_SEQUENCES
試著做個VIEW,我沒有試
另外,如果想用序列查看某個表的記錄數(shù)量,這個會不準確(因為可能有序列裂縫)
執(zhí)行如下sql:
select * from user_sequences;
如果需要查看某個特定的序列,如下:
select * from user_sequences ?where ?sequence_name like '%T_SELL_BRAND%';
select * from user_sequences ?where ?sequence_name='SEQ_T_SELL_BRAND';
注意:序列名區(qū)分大小寫。
根據(jù)具體問題類型,進行步驟拆解/原因原理分析/內(nèi)容拓展等。
具體步驟如下:/導致這種情況的原因主要是……
1、oracle序列和表名沒直接對應關(guān)系的
2、dba_sequences可以查詢到有哪些序列
3、一般命名規(guī)則是:表名_s,看看有沒有 有的話直接拿去用吧
你的問題很籠統(tǒng),你是想知道序列的當前值嗎?select 序列.nextval from dual就可以了,這個查出來的就是當前序列下一個可以使用的值,序列每讀一次都會加1的,比如這次的序列.nextval是18,你下次使用的時候就是19了
這個需要分兩步來完成1 drop sequence 序列名;2 create sequence 序列名minvalue 最小值maxvalue 最大值start with 開始值increment by 遞增cache 20order;