場景:在開發中資料庫主鍵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 ...