原 Oracle中列自增的方法

2021-08-29 16:54:14 字數 1599 閱讀 1763

如何在oracle中設計類似sqlserver中某列按某種方式自增長?

其實很簡單,在oracle中,沒有類似identity(1,1)這樣的自增長方式,如果需要設定某列按照某種方式自增長,那麼需要「重寫」oracle中sequence,在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方,首先需要明白squence能用到的地方:

-------------------------------------------

可以使用sequence的地方:

- 不包含子查詢、snapshot、view的 select 語句

- insert語句的子查詢中

- nsert語句的values中

- update 的 set中

-------------------------------------------

建立一張表:

create

table

test(

id int

notnull

primary

key,

name

varchar2(20

),***

int)

;

-------------------------------------------

現在「重寫」squence

create

sequence t

->

建立squence,命名為t

minvalue

1->

最小值maxvalue

100000

->

最大值start

with

1->

從1開始

increment by1

->

增長比例

nocache

->

增長池,為了提高效率,可以設定為 cache 10;

-------------------------------------------

插入資料:

insert

into

test

values

(t.nextval,

'zhangyi'23

);

-------------------------------------------

這樣就實現了以前在sqlserver中設定identity(1,1)這樣的增長方式了,看上去比較麻煩,實際上做起來還是挺容易的!~

另外,如果想修改squence,直接alter它就可以了,刪除同樣是drop。

--------------------------------------------

另外:搞了幾天的oracle了,唯一的感覺是非常的龐大,今天下的電子書看了一半,感覺還不錯,明天繼續,看完總算能聞聞oracle的味道了,呵呵!~下次爭取寫乙個常用oracle命令,還有這幾天在安裝oracle,啟動oracle監聽過程中的一些解決辦法,與大家一起討論,晚安!

oracle中設定自增主鍵

新建序列 create sequence name increment by x x為增長間隔 start with x x為初始值 maxvalue x x為最大值 nomaxvalue 不設定最大值 minvalue x x為最小值 nominvalue 不設定最小值 cycle 迴圈使用,到達...

oracle中自增主鍵設定

mysql中主鍵自增設置為auto increment屬性,oracle中沒有該屬性,而是通過sequence序列,間接來實現主鍵自增功能 參考 序列 sequence 又叫序列生成器,用於提供一系列的數字,開發人員使用序列生成唯一鍵。每次訪問序列,序列按照一定的規律增加或者減少.序列建立引數說明 ...

關於oracle設定欄位自增的方法

最近在使用oracle資料庫的時候發現和mysql有點區別,就是不像mysql可以在建表的時候就設定自增,需要自己寫序列和觸發器,話不多說,上 建立序列 create sequence seq 表名稱 increment by 1 每次加幾個 start with 1 從1開始計數 nomaxval...