表裡指定欄位自增,這個問題在sqlserver裡面來說很簡單 ,identity(1,1)該字段就會從1開始,按照+1的方式自增.
但是在oracle裡面呢,就需要用到序列和觸發器完成才可以。
相信這個問題每乙個轉oracle型資料庫時都會遇到。 所以我在此寫一篇部落格,不求聞達於諸侯,只希望大家也和我一樣願意把自己遇到的問題寫到部落格上,來幫助每一位it行業的同伴。
首先資料表名: ***x
查詢資料 select * from ***x;
表中主鍵列是f_id ,接下來就指定該列f_id自增長, 以1起開始,後面新增資料依次+1,1,2,3…等等
create sequence ywgsequence --seq_lu是序列名
start with 1 ----表示從1開始自增
increment by 1 ----表示步長為1,如果為2就每次加2
maxvalue 9999 ----表示最大值,此行可以不寫,無限下去
nocycle ----表示不迴圈
cache 10;
create or replace trigger userid_trigger before insert on ***x for each row when(new.userid is null)
begin
select ywgsequence.nextval into:new.userid from dual;
end;
建立序列
語法 create sequence 序列名 [相關引數]
引數說明
increment by :序列變化的步進,負值表示遞減。(預設1)
start with:序列的初始值 。(預設1)
maxvalue:序列可生成的最大值。(預設不限制最大值,nomaxvalue)
minvalue:序列可生成的最小值。(預設不限制最小值,nominvalue)
cycle:用於定義當序列產生的值達到限制值後是否迴圈(nocycle:不迴圈,cycle:迴圈)。
oracle自增字段
在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。1 create sequence 你首先要有create sequence或者create any sequence許可權,create sequence emp sequence incr...
oracle自增字段
sqlserver 和mysql都有自增長的功能,但是oracle必須結合sequence序列 觸發器才能夠實現自動增長 1 create table table name id number,name varchar2 50 2 create sequence sequence name minv...
oracle中如何指定表字段自增
背景介紹 sql server可以在int型別的字段後加上identity 1,1 該字段就會從1開始,按照 1的方式自增,將這個字段設定為主鍵,有利於我們進行資料的插入操作。mysql中可以使用 auto increment 即可。但是oracle有點麻煩,需要使用序列和觸發器達到目的。學校表 c...