日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle 序列的使用

發布時間:2025/3/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 序列的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

序列: 是oacle提供的用于產生一系列唯一數字的數據庫對象。

???????? 自動提供自增的唯一的數值。

???????? 共享的數據

???????? 主要用于提供主鍵值

?????????將序列裝入內存可以提高訪問效率

1.創建序列:

????????????1、? 要有創建序列的權限 create sequence 或 create any sequence

????????????2、? 創建序列的語法:

????????????????????create sequence?sequence???//創建序列名稱????????????????????????????????????????????????????? ?create sequence seq_stu??

??????????????????? increment by??n????????????????? //遞增的序列值是n,??????????????????????????????????????????????????increment by 1

????????????????????[START WITH n]??? //開始的值,遞增默認是minvalue 遞減是maxvalue

???????????????????[{MAXVALUE n | NOMAXVALUE}] //最大值

????????????????????[{MINVALUE n | NOMINVALUE}] //最小值

??????????????????? [{CYCLE | NOCYCLE}] //循環/不循環

????????????????????[{CACHE n | NOCACHE}];//分配并存入到內存中

????????????? NEXTVAL 返回序列中下一個有效的值,任何用戶都可以引用

? CURRVAL 中存放序列的當前值

? NEXTVAL 應在 CURRVAL 之前指定 ,二者應同時有效

?

Create sequence seqEmp increment by 1 start with 1 maxvalue 3 minvalue 1

Cycle cache 2;

//先nextval 后 currval

Select seqEmp.nextval ?from dual;?

Select seqEmp.currval ?from dual;

Cache<max-min/increment

?

//解釋

{

Create 創建

Sequence 序列 seqEmop 序列名稱

Increment by 步長

Stat with 1 開始值

Maxvalue? 最大值

Minvalue? 最小值

?

Cycle 循環 nocycle 不循環

Cache 緩存?? Cache<maxvalue-minvalue/increment by//一般不采用緩存

Nextvalue 下一個

Currval 當前值

?

}

//實例應用

//實現id的自動遞增

//第一步

create table cdpt(

id number(6),

name varchar2(30),

constraint pk_id primary key(id)

);

?

Create sequence seq_cdpt

Increment by 1

Start with 1

Maxvalue 999999

Minvalue 1

Nocycle

nocache

?

insert into cdpt values(seq_cdpt.nextval,’feffefe’);

commit;

select * from cdpt;

/使用序列

會產生裂縫

l?? 序列在下列情況下出現裂縫:

?? 回滾

?? 系統異常

>多個表同時使用同一序列

//修改序列的增量, 最大值, 最小值, 循環選項, 或是否裝入內存

alter SEQUENCE sequence ?//創建序列名稱

?????? [INCREMENT BY n]? //遞增的序列值是n 如果n是正數就遞增,如果是負數就遞減 默認是1

?????? [START WITH n]??? //開始的值,遞增默認是minvalue 遞減是maxvalue

?????? [{MAXVALUE n | NOMAXVALUE}] //最大值

?????? [{MINVALUE n | NOMINVALUE}] //最小值

?????? [{CYCLE | NOCYCLE}] //循環/不循環

?????? [{CACHE n | NOCACHE}];//分配并存入到內存中

修改序列的注意事項:

l?? 必須是序列的擁有者或對序列有 ALTER 權限

l?? 只有將來的序列值會被改變

l?? 改變序列的初始值只能通過刪除序列之后重建序列的方法實現

刪除序列

l?? 使用DROP SEQUENCE 語句刪除序列

l?? 刪除之后,序列不能再次被引用

Alter sequence seqEmp maxvalue 5;

Select seqEmp.nextval from dual;

?

?

?

我的例子:

Create sequence seq_stu

Increment by 1

Start with 1

Maxvalue 999999

Minvalue 1

Nocycle

nocache

insert into STUDENTS (stu_id,name,age,grade)VALUES(seq_stu.nextval,'shali','14','1')
??????????????????

轉載于:https://www.cnblogs.com/lovefan/p/3388400.html

總結

以上是生活随笔為你收集整理的oracle 序列的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。