新聞中心
oracle中怎樣實現(xiàn)主鍵怎樣實現(xiàn)主鍵自增
1、關于主鍵:在建表時指定primary key字句即可:
成都創(chuàng)新互聯(lián)公司從2013年成立,先為烏達等服務建站,烏達等地企業(yè),進行企業(yè)商務咨詢服務。為烏達企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
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字段實現(xiàn)自增。則在每次插入記錄時,使用下面類似的語法(前提是表和序列已經建好)。
insert into test values (s_test.nextval,'張三');
當然,你也可以自動一些,對表的插入操作,建立一個觸發(fā)器,每當有數(shù)據(jù)插入時,觸發(fā)器自動修改id值為序列的新值,這樣就完全實現(xiàn)自增id功能了。不過其實也沒有這個必要。因為觸發(fā)器如果建多了,有時會比較混亂,不易管理。
oracle 如何實現(xiàn)主鍵id自增,或自動生成
一、主鍵id自增
oracle 中不能設置自動增加,這個和其他數(shù)據(jù)庫不一樣,但是有 序列,這個是Oracle自己特有的東西,
1、首先創(chuàng)建序列:create sequence seq;
語法:
CREATE SEQUENCE 序列名
[INCREMENT BY n] --每次加幾
[START WITH n] --序列從幾開始
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制
比CREATE SEQUENCE seq start with 1 increment by 1; --建立了額從1開始每次加1序列
訪問序列時用 序列名稱.nextval語法
這就創(chuàng)建好了,然后 seq.nextval 就會返回一個值,不會重復的值,
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
這樣前3個id 分別是 1,2,3
二、自動生成UUID策略
import java.util.UUID;
Student s = new Student();
s.setId(UUID.randomUUID().toString());
ORACLE主鍵自增長(序列+觸發(fā)器)
以前用的mysql,是有自動遞增這個屬性的,現(xiàn)在用的orlace,需要建序列來實現(xiàn)遞增,這里記錄一下:
一、先建一張表(PROJECT_LOGS)
二、表建好了,我們來建一下序列,我用的是sqldeveloper界面來建:
其實到了這里就實現(xiàn)了遞增,只是寫sql時要傳入id(SEQ_PROJECT_LOGS.Nextval);
三、創(chuàng)建觸發(fā)器:
分享標題:oracle如何主鍵自增,oracle主鍵自增在代碼實現(xiàn)
本文地址:http://ef60e0e.cn/article/hodohe.html