筆記
(1) 建立表
create table test(
id number(18,2) primary key, -- 主鍵(unique+not null)
name varchar2(100) not null
(2) 建立序列
create sequence seq_test_id
minvalue 1 -- 最小值
start with 1 -- 起始值
increment by 1 -- 步長
nomaxvalue --沒有最大值,若有最大值則需要設定,maxvalue,相對的去掉nomaxvalue
nocache -- 不快取序列,若需要快取序列的話則改寫成cache [number],number為整數,預設為20;
-- 區別: cache 會在需要用到序列之前先快取一定數量(預設20個)的序列到記憶體中,可以提高insert語句效能,但會存在跳號的問題,比如當快取了20個,還剩5個,突然電腦斷電,重啟後,它會跳過剩下的5個序列,來取值
nocycle; -- 當達到最大值時,不迴圈使用序列值,迴圈的話則使用cycle
(3) 建立觸發器
create or replace trigger trigger_test_id
before insert on test for each row when (new.id is null)
begin
select seq_test_id.nextval into :new.id from dual;
end;
儘管建立觸發器很方便,但一般還是用另一種方式:
hibernate的註解的形式更為方便,快捷,在實體類的主鍵列上新增注釋,4步搞定:
a. @id -- 標註主鍵列
b. @column(name = "id") -- 標註屬性與列的對應關係
c. @sequencegenerator(name = "seq_test", sequencename = "seq_test_id", allocationsize = 1) -- 標註sequencename引用資料庫中的序列"seq_test_id",並重命名為"seq_test"
d. @generatedvalue(generator = "sequence_resume_id", strategy = generationtype.sequence) --- 標註主鍵生成器和生成策略
oracle建立自增長主鍵
建表 使用者必須被顯示的賦予建立觸發器的許可權才可以建立trigger 1 用sys 1234登陸sqlplus 2 在command視窗輸入 grant create any trigger to sprita1 3 提示grant succeeded表明賦予成功 建立自增長主鍵的表 create...
oracle 自增長主鍵
1 首先,你要有一張表!create table example id number 4 not null primary key,name varchar 25 phone varchar 10 address varchar 50 2 然後,你需要乙個自定義的sequence create se...
oracle主鍵自增長
oracle主鍵自增長 1 比較土鱉的方式 定義主鍵number型別,之後每次存資料時候,id為取得此表的max id 之後 1,在存放進去 可以用時間作為主鍵,唯一。2 官方版 使用序列方式,增長主鍵。下面介紹使用過程。建立測試表 t sql sql create table t 2 id num...