Ⅰ 在oracle資料庫中創建表語句如何寫
Oracle不能再建表語句中實現自增的,需要藉助sequence才能實現,,設置主鍵只需要在欄位後面加primary key關鍵字即可
create table servicelogs(
id number(8) primary key,
servicetype varchar(100),
outsys varchar(100),
methodname varchar(100),
methodresult varchar(200),
errormessage varchar(900),
inparameter varchar(900),
returncontent varchar(900),
logtime varchar(20)
);
創建序列號:
create sequence servicelogs_sequence
increment by 1 --步長,每次增加幾
start with 1 --從幾開始,這里是1
nomaxvalue --不設置最大值
nocycle --一直累加,不循環
nocache; --不建緩沖區
當然到此也可以結束,每次調用手動調用(序列名稱.nextcal),但是這樣比較麻煩,還是建立一個觸發器
create or replace trigger servicelogs_trig before
insert on servicelogs for each row
begin
select servicelogs.nextval into new.id from al;
end;
測試:
insert into servicelogs(servicetype)values('aaab');
select * from servicelogs;
Ⅱ 往oracle資料庫中新增加一條數據如何自動生成ID
先在資料庫來中新增一個序源列,如在oracle資料庫中執行如下語句新增一個名為test_seq的序列
CREATE
SEQUENCE
test_seq
INCREMENT
BY
1
--
每次加幾個
START
WITH
1
--
從1開始計數
NOMAXVALUE
--
不設置最大值
NOCYCLE
--
一直累加,不循環
以後你往某表中插入數據時,直接用如下形式就行了,比如:
insert
into
test_table
VALUES
(test_seq.nextval,
......)
test_table的第一列就是你要自增的那個id,test_seq.nextval就是從新增的序列中取出下一個值,每取一次都會+1.
當然,一般來說不同的表需使用不同的序列,這樣它們的id可以保證連續