-----oracle 指定字段 自增 ,1.要先創(chuàng)建一個(gè)序列 2. 之后創(chuàng)建一個(gè)觸發(fā)器
創(chuàng)新互聯(lián)長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為肥鄉(xiāng)企業(yè)提供專(zhuān)業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),肥鄉(xiāng)網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
--- 序列 (序列與觸發(fā)器實(shí)現(xiàn)t_sys_organize表中F_ID字段的自動(dòng)增長(zhǎng))
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字段的自動(dòng)增長(zhǎng))
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ù)據(jù)庫(kù)使用命令行操作,注意Oracle不能直接設(shè)置自增字段,需要使用序列+觸發(fā)器來(lái)實(shí)現(xiàn)。
1.創(chuàng)建Book表
Create table Book(
Id NUMBER(6) constraint s_PK primary key,
Title nvarchar2(200) not null,
Author nvarchar2(200) not null,
Publisher nvarchar2(200) not null,
ISBN nvarchar2(50) not null,
Price NUMBER(6,2) not null,
CategoryName nvarchar2(50) not null,
Description nvarchar2(1000) not null,
ImageName varchar2(50)
);
2.創(chuàng)建自增序列
create sequence BOOK_seq (BOOK_seq為序列名,任意?。?/p>
increment by 1 (increment 表示字段逐條增加1)
start with 1 (設(shè)置自增序列的初始值為1)
nomaxvalue (不限制自增序列的最大值)
minvalue 1; (設(shè)置自增序列的最小值為1)
3.試用一下,向BOOK表中插入一條數(shù)據(jù),Id列就引用了自增序列。
insert into BOOK values(BOOK_seq.nextval,'a','a','a','a',32.1,'a',
'a','1.jpg');
注意:
操作之后記得輸入“commit;“保存操作。
Oracle數(shù)據(jù)庫(kù)的的命令行創(chuàng)建表,系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)化為大寫(xiě)字母,假如使用數(shù)據(jù)庫(kù)操作客戶端,那么建表等操作時(shí)記得字段名大寫(xiě)。
oracle中沒(méi)有自動(dòng)增長(zhǎng),只有序列號(hào)\x0d\x0a添加一條記錄和sqlserver一樣\x0d\x0a語(yǔ)法:insert into table(列,列,列) values(value,value,value); \x0d\x0a\x0d\x0a如果有個(gè)自動(dòng)增長(zhǎng)列\(zhòng)x0d\x0a可以用這種方法,首先創(chuàng)建一個(gè)序列號(hào)SEQ_Test\x0d\x0a然后insert into table(ID,列,列) values(SEQ_Test.nextval,value,value);