首先,Oracle中沒有像MySQL那樣的id自增長功能
目前成都創(chuàng)新互聯(lián)公司已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、青州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
如果要用Oracle這么做的話首先要先建一個表,如:
CREATE
TABLE
test(
ID
Number(4)
NOT
NULL
PRIMARY
KEY,
NAME
VARCHAR(25),
PHONE
VARCHAR(10),
ADDRESS
VARCHAR(50));
然后,你需要一個自定義的sequence:
CREATE
SEQUENCE
emp_sequence
INCREMENT
BY
1
--
每次加幾個
START
WITH
1
--
從1開始計(jì)數(shù)
NOMAXVALUE
--
不設(shè)置最大值
NOCYCLE
--
一直累加,不循環(huán)
NOCACHE
--
不建緩沖區(qū)
你只有了表和序列還不夠,還需要一個觸發(fā)器來執(zhí)行它:
CREATE
TRIGGER
"觸發(fā)器名稱"
BEFORE
INSERT
ON
example
FOR
EACH
ROW
WHEN
(new.id
is
null)
begin
select
emp_sequence.nextval
into:
new.id
from
dual;
end;
這時你再向test表中插數(shù)據(jù)就可以不用管id了
關(guān)于主鍵:在建表時指定primary key字句即可:
create table test(
id ?number(6) primary key,
name varchar2(30)
);
如果是對于已經(jīng)建好的表,想增加主鍵約束,則類似語法:
alter table test add constraint pk_id primary key(id); ?
其中add constraint 和 primary key是關(guān)鍵字,pk_id是主鍵名稱,自定義的額,只要不重復(fù)即可。
也可以自動一些,對表的插入操作,建立一個觸發(fā)器,每當(dāng)有數(shù)據(jù)插入時,觸發(fā)器自動修改id值為序列的新值,這樣就完全實(shí)現(xiàn)自增id功能了。不過其實(shí)也沒有這個必要。因?yàn)橛|發(fā)器如果建多了,有時會比較混亂,不易管理。
-----oracle 指定字段 自增 ,1.要先創(chuàng)建一個序列 2. 之后創(chuàng)建一個觸發(fā)器
--- 序列 (序列與觸發(fā)器實(shí)現(xiàn)t_sys_organize表中F_ID字段的自動增長)
create sequence t_sys_organize_F_ID_SEQUENCE
minvalue 100000
maxvalue 99999999
start with 100000
increment by 1
nocache;
--觸發(fā)器 (序列與觸發(fā)器實(shí)現(xiàn)t_sys_organize表中F_ID字段的自動增長)
CREATE OR REPLACE TRIGGER t_sys_organize_F_ID_TRIGGER BEFORE INSERT ON t_sys_organize FOR EACH ROW WHEN(NEW.F_ID IS NULL)
BEGIN
SELECT t_sys_organize_F_ID_SEQUENCE.NEXTVAL INTO:NEW.F_ID FROM dual;
END;
文章名稱:oracle怎么實(shí)現(xiàn)自增 oracle怎么設(shè)置自增
當(dāng)前鏈接:http://www.rwnh.cn/article16/hichdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、建站公司、做網(wǎng)站、用戶體驗(yàn)、品牌網(wǎng)站制作、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)