-
在 oracle 中,序列是序列號,每次檢索時都會自動遞增。 序列與表無關。
1、create sequence
首先,您必須具有“建立序列”或“建立任何序列”許可權。
建立語句如下:
create sequence seqtest
遞增 1 -- 一次新增多個。
從 1 開始 -- 從 1 開始計數。
nomaxvalue -- 未設定最大值。
nocycle -- 總是累積,不迴圈。
cache 10;- 設定快取序列,如果系統宕機或其他情況會導致序列不連續,也可以設定為--- nocache
2. 獲取序列值。
定義序列後,可以使用 currval 和 nextval 獲取值。
currval:返回序列的當前值。
nextval:增加序列的值,然後返回增加的序列的值。
生成的 value 語句如下所示:
選擇序列名稱。 currval from dual;
例如,上面用於建立序列值的語句為:
select from dual
您可以在 SQL 語句中使用 Sequence 的位置:
選擇不包含子查詢、快照和檢視的語句。
insert 語句。
insert 語句。
更新。
例如在 insert 語句中。
插入到表中 name(id,name)values(,'序列插入測試');
注意:第乙個 nextval 返回初始值; 後續的 nextval 將自動按您定義的值遞增增量,然後返回增加的值。
currval 始終返回當前序列的值,但 currval 只能在第一次 nextval 初始化後進行,否則會發生錯誤。
select top(1)* from table_name order by update_time desc
我的想法是按照修改時間的降序找到第一名的結果,不是嗎? >>>More
解決方法如下: 1.create global temporary table t temp 語句是建立乙個臨時表,oracle 中建立的臨時表有兩種,一種是事務級的,另一種是會話級的,當建立臨時表語句後跟 on commit delete 行時,表示臨時表是事務級的, 在提交保留行時,這意味著臨時表是會話級的。 >>>More