oracle怎麼實現id自增和設置主鍵

1、關於主鍵:在建表時指定primary key字句即可:
create table test(
  id  number(6) primary key,
  name varchar2(30)
);
如果是對於已經建好的表,想增加主鍵約束,則類似語法:
alter table test add constraint pk_id primary key(id);  
其中add constraint 和 primary key是關鍵字,pk_id是主鍵名稱,自定義的額,只要不重複即可。

2、關於id自增功能,也很簡單,而且比較靈活。
(1)首先建立一個序列(就是每次查詢會自動增加值的絕不重複的對象,比如每次加1或每次加10)。語法:
CREATE SEQUENCE 序列名
[INCREMENT BY n]     --每次加幾
[START WITH n]         --序列從幾開始
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --最小值、最大值的限制
比如CREATE SEQUENCE s_test start with 1 increment by 1;   --就是建立了額一個從1開始每次加1的序列。
訪問序列時,用  序列名稱.nextval的語法。

比如對於上表,如果想要id字段實現自增。則在每次插入記錄時,使用下面類似的語法(前提是表和序列已經建好)。
insert into test values (s_test.nextval,'張三');

當然,你也可以自動一些,對錶的插入操作,建立一個觸發器,每當有數據插入時,觸發器自動修改id值爲序列的新值,這樣就完全實現自增id功能了。不過其實也沒有這個必要。因爲觸發器如果建多了,有時會比較混亂,不易管理。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章