国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - oracle 創建字段自增長實現方式

oracle 創建字段自增長實現方式

2020-01-02 15:10lqh Oracle

這篇文章主要介紹了oracle 創建字段自增長實現方式的相關資料,需要的朋友可以參考下

mysql等其他數據庫中有隨著記錄的插入而表ID自動增長的功能,而oracle卻沒有這樣的功能,我們有以下兩種方式可以解決字段自增長的功能。

  因為兩種方式都需要通過創建序列來實現,這里先給出序列的創建方式。

?
1
2
3
4
5
6
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];

解析:

1)INCREMENT BY用于定義序列的步長,如果省略,則默認為1,如果出現負值,則代表Oracle序列的值是按照此步長遞減的。

2)START WITH 定義序列的初始值(即產生的第一個值),默認為1。

3)MAXVALUE 定義序列生成器能產生的最大值。選項NOMAXVALUE是默認選項,代表沒有最大值定義,這時對于遞增Oracle序列,系統能夠產生的最大值是10的27次方;對于遞減序列,最大值是-1。

4)MINVALUE定義序列生成器能產生的最小值。選項NOMAXVALUE是默認選項,代表沒有最小值定義,這時對于遞減序列,系統能夠產生的最小值是?10的26次方;對于遞增序列,最小值是1。

5)CYCLE和NOCYCLE 表示當序列生成器的值達到限制值后是否循環。CYCLE代表循環,NOCYCLE代表不循環。如果循環,則當遞增序列達到最大值時,循環到最小值;對于遞減序列達到最小值時,循環到最大值。如果不循環,達到限制值后,繼續產生新值就會發生錯誤。

6)CACHE(緩沖)定義存放序列的內存塊的大小,默認為20。NOCACHE表示不對序列進行內存緩沖。對序列進行內存緩沖,可以改善序列的性能。

解決方式一、序列+觸發器

具體實現方式如下:

第一步,創建sequence

?
1
2
3
4
5
6
7
8
-- Create sequence
create sequence SEQ_T_RECV
minvalue 1
maxvalue 9999999
start with 1
increment by 1
cache 50;
<br>

第二步,創建表

?
1
2
3
4
5
6
7
8
9
10
-- Create table
create table RECV_MSG
(
 id     NUMBER,
 messageid  VARCHAR2(32),
 contents  VARCHAR2(2000),
 app_flg   VARCHAR2(100),
 phonenumber VARCHAR2(2000),
 updatetime DATE default sysdate
);

第三步,建立觸發器

?
1
2
3
4
5
6
7
8
CREATE OR REPLACE TRIGGER "recv_trig"
 BEFORE INSERT ON recv_msg
 REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
BEGIN
 SELECT SEQ_T_RECV.NEXTVAL INTO :NEW.ID FROM DUAL;
END recv_trig;
<br>

第四步,測試并確認

向表中插入一條數據,查看id字段是否自動增長了。

解決方式二、序列+顯示調用序列

一、創建sequence

?
1
2
3
4
5
6
7
create sequence seq_on_test
increment by 1
start with 1
nomaxvalue
nocycle
nocache;
<br>

二、建表

?
1
2
3
4
5
6
7
8
--建表
drop table test;
create table test(
ID integer
,stu_name nvarchar2(4)
,stu_age number
);
<br>

三、插入數據(顯示調用序列的下一個值插入)

?
1
2
3
4
--插入數據
insert into test values(seq_on_test.nextval,'Mary',15);
insert into test values(seq_on_test.nextval,'Tom',16);

 四、查看

?
1
2
3
4
5
6
7
select * from test;
 
--結果
/*
1 Mary 15
2 Tom 16
*/

附帶:查看序列當前值和下一個值的查看方式

?
1
2
3
4
5
6
7
8
9
--seq的兩個方法
select seq_on_test.currval from dual;
select seq_on_test.nextval from dual;
 
--結果
/*
2
3
*/

總結

  通過觸發器直接添加的方式比顯示調用方便一下,我們不需要哪個字段要通過哪個序列還獲取下一個值,而通過觸發器進行執行的添加。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美日本免费一区二区三区 | 欧美精品一二三 | 国产 高清 在线 | 午夜爱爱毛片xxxx视频免费看 | 亚洲视频一区在线 | 亚洲精品7777xxxx青睐 | 一色视频 | 免费亚洲网站 | 久久男人 | 日韩一区二区免费电影 | 国产黄色免费 | 久久午夜影院 | 久久成人av | 羞羞在线观看 | 一本大道久久a久久精二百 在线a人片免费观看视频 | 国产精品一区二区三区四区 | 秋霞av电影| 黄色国产片| 久久精品综合 | 亚洲成人久久久久 | 在线日韩视频 | 精品在线一区二区 | 黄片毛片在线 | av免费网 | 日韩在线观看中文字幕 | 亚洲精品在线免费看 | 午夜精品影院 | 午夜影院| 午夜在线小视频 | 精品国产欧美一区二区三区成人 | 日韩在线视频资源 | 国产精品美女www爽爽爽软件 | 一级在线| 精品久久中文 | 亚洲一区久久 | 精品国产三级 | 国产精品久久久亚洲 | 欧美精品综合 | 欧美精品v国产精品v日韩精品 | 国产亚洲精品久久久久动 | 精品一区二区在线观看 |