oracle中使用序列

2021-08-28 21:52:48 字數 732 閱讀 6526

場景:在開發中資料庫主鍵id設計為number型別了,因此不能使用uuid進行隨機生成id,那麼現在使用oracle的序列自動生成吧。

首先建立序列

create sequence seq_case_studyid

minvalue 1  //最小值

maxvalue 999999   //最大值

start with 1  //從幾開始

increment by 1;  //增長幅度

建立好後便可以在sql中以seq_caseid.nextval表示下乙個id了。

插曲:有時候業務會操作a、b兩張表,先在a表插入一條記錄,然後b表中會需要a表剛才那條記錄的id值,這裡使用mybatis/ibatis中的selectkey標籤

selectkey有3個主要的屬性: 

1)resultclass:返回的主鍵的資料型別,跟sqlmap中的資料型別一致; 

2)type:表示主鍵在insert之前或之後生成(取決於資料庫的主鍵生成策略),取值分別為[pre|post],非必須,未填寫時如果在insert之前表示pre,否則表示post; 

2)keyproperty:返回值儲存到的屬性,非必須(一般值都是填寫主鍵); 

在寫sql時候會有以下情況

oracle 中 使用詳解

例如 左外連線 select a.a,b.a from a left join b on a.b b.b 等價於select a.a,b.a from a,b where a.b b.b 再舉個例子,這次是右外連線 select a.a,b.a from a right join b on a.b ...

Oracle中使用Split函式

定義陣列型別 type t array is varray 2000 of varchar2 4000 v varray t array 將字串轉換成為陣列 陣列解析函式摘的,不應該每個字元遍歷,只作啟示 function f splitstr str in varchar2,separator i...

oracle中使用rollup子句

在orcle中我們經常用到分組函式例如統計乙個集團中每個公司的人數 select pk corp,count from user group by pk corp order by pk corp,得到的結果如下 如果我們想得到所有人的總和,那麼我們就可以用rollup子句來做。select pk ...