1、關于主鍵:在建表時指定primary key字句即可:
create table test(
? id ?number(6) primary key,
? name varchar2(30)
[INCREMENT BY n] ? ? --每次加幾
[START WITH n] ? ? ? ? --序列從幾開始
create table test(
? id ?number(6) primary key,
? name varchar2(30)
);
如果是對于已經建好的表,想增加主鍵約束,則類似語法:
alter table test add constraint pk_id primary key(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的序列。
比如對于上表,如果想要id字段實現自增。則在每次插入記錄時,使用下面類似的語法(前提是表和序列已經建好)。
當然,你也可以自動一些,對表的插入操作,建立一個觸發器,每當有數據插入時,觸發器自動修改id值為序列的新值,這樣就完全實現自增id功能了。不過其實也沒有這個必要。因為觸發器如果建多了,有時會比較混亂,不易管理。