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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

oracle自增

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

oracle中主鍵自增

下面用一個例子來說明自增主鍵的創建:

1、建用戶數據表

????? drop table dectuser;

????? create table dectuser(

?????????? userid integer primary key,? /*主鍵,自動增加*/

?????????? name varchar2(20),

????????? ?sex varchar2(2)

?????????? );2、創建自動增長序列

????? drop sequence dectuser_tb_seq;

????? create sequence dectuser_tb_seq minvalue 1 maxvalue 99999999

?????????????? increment by 1

?????????????? start with 1;?? /*步長為1*/

3、創建觸發器

????? create or replace trigger dectuser_tb_tri

????????? before insert on dectuser???? /*觸發條件:當向表dectuser執行插入操作時觸發此觸發器*/

??????????for each row???????????????????????/*對每一行都檢測是否觸發*/

??????????begin????????????????????????????????? /*觸發器開始*/

???????????????? select dectuser_tb_seq.nextval into :new.userid from dual;?? /*觸發器主題內容,即觸發后執行的動作,在此是取得序列dectuser_tb_seq的下一個值插入到表dectuser中的userid字段中,注意:new.userid 是new.加上原表的主鍵*/

????????? end;

???

????????? /??????????????????????????????????????? /*退出sqlplus行編輯*/

4、提交

??????commit;

?

??????現在就完成了自增主鍵的設定,搞定!可以檢測一下。

????? insert into dectuser(name,sex) values ('wang','女');

????? 提示“已創建一行”,表示成功。呵呵:D

方法二:

?

?

oracle中創建自增主鍵

首先,創建一張表

CREATE TABLE example(

ID Number(4) NOT NULL PRIMARY KEY,

NAME VARCHAR(25),

PHONE VARCHAR(10),

ADDRESS VARCHAR(50));

然后,你需要一個自定義的sequence

CREATE SEQUENCE emp_sequence

INCREMENT BY 1 -- 每次加幾個

START WITH 1 -- 從1開始計數

NOMAXVALUE -- 不設置最大值

NOCYCLE -- 一直累加,不循環

NOCACHE -- 不建緩沖區

以上代碼完成了一個序列(sequence)的建立過程,名稱為emp_sequence,范圍是從1開始到無限大(無限大的程度是由你機器決定的),nocycle 是決定不循環,如果你設置了最大值那么你可以用cycle 會使seq到最大之后循環.對于nocache順便說一下如果你給出了cache值那么系統將自動讀取你的cache值大小個seq

,這樣在反復操作時會加快運行速度,但如果遭遇意外情況如當機了或oracle死了,則下次取出的seq值將和上次的不連貫

書接上文,你只有了表和序列還不夠,還需要一個觸發器來執行它!代碼如下:

CREATE or replace TRIGGER "觸發器名稱" BEFORE

INSERT ON example FOR EACH ROW WHEN (new.id is null)

begin

select emp_sequence.nextval into: new.id from dual;

end;

插入數據

INSERT INTO example(Name,phone,address) Values('Cao','56498543','Heibei');

=============================================================

ORACLE SEQUENCE的簡單介紹(自增長字段)-

轉載于:https://www.cnblogs.com/zhoushengbing/p/3253089.html

總結

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

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