oracle表中指定欄位自增

2021-10-06 12:27:55 字數 1010 閱讀 7001

表裡指定欄位自增,這個問題在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...