如何在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...