SQL Oracle表中ID欄位的自動遞增

2021-12-30 04:20:37 字數 1568 閱讀 1756

目標:實現向一張表中插入資料時,id欄位自動遞增。

開始實驗:

(1)、建立實驗表

createtable test_id_add

(id number(10),

username varchar2(32),

tel varchar2(11),

create_date datedefaultsysdate

(2)、建立序列

使用pl/sql developer建立序列

補充:對於序列的建立,我們也可以通過命令實現,如下:

create sequence seq_test

increment by 1

start with 1

nomaxvalue

nominvalue

nocache

--引數說明

--seq_test,表示建立序列的名稱

--increment by 1 表示每次增加1

--start with 1表示開始於1

--nomaxvalue表示沒有最大值

--nominvalue表示沒有最小值

--nocache表示序列號達到上限後不繼續擴充套件

補充結束

(3)、建立觸發器

--每次向test_id_add表新插入一條資料之前,先插入乙個id值

create or replace trigger tr_idadd

before insert on test_id_add

for each row

begin

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

end;

(4)、測試

sql>insert into test_id_add(username,tel) values('huangyanlong','12345678900');

--插入第一條資料

--插入第二條資料

如圖所示,id欄位在以每次加一後自動增長。

SQL Oracle給表新增字段說明

oracle mysql sqlserver建立表和給表和字段加注釋 一 oracle 建立表 create table test id varchar2 200 primary key not null,sort number,name varchar 200 欄位加注釋 comment on c...

sql Oracle 驅動表是什麼?

1.什麼是驅動表?通俗的講就是先從哪個表開始檢索啦,找到好的驅動表語句的優化就成功一半了 eg select from a,b where a.id b.id and a.姓名 美格瑞恩 and b.性別 女 在a,b表同等數量級的情況下顯然用a表做為驅動表比較好因為姓名相對於性別來說可以過濾掉更多...

Oracle建立表ID欄位關聯序列

建立測試表 create table msct test user id number 10 user name varchar2 32 建立序列 create sequence mscs test increment by 1 start with 0 minvalue 0 maxvalue 10...