oracle sequence 不同 会话 不连续_序列 Sequence
Sequence是一個數據庫對象,多個用戶可以從中生成唯一的整數,可以使用序列自動生成主鍵值。
生成序列號時,序列號將遞增,獨立于事務提交或回滾;
如果兩個用戶同時遞增同一序列,因為序列號是由另一個用戶生成的,每個用戶獲得的序列號可能存在間隙,一個用戶永遠無法獲取另一個用戶生成的序列號。一個用戶生成序列值后,該用戶可以繼續訪問該值,而不管序列是否由另一個用戶遞增;
序列號是獨立于表生成的,因此同一序列可以用于一個或多個表。個別序列號可能會被跳過,因為事務最終回滾。此外的用戶可能不會意識到其他用戶也正在從同一序列中繪制。
創建序列
CREATE SEQUENCE name
[ INCREMENT BY increment ]
[ { NOMINVALUE | MINVALUE minvalue } ][ { NOMAXVALUE | MAXVALUE maxvalue } ]
[ START WITH start ]
[ CACHE cache | NOCACHE ]
[ CYCLE ]
得到序列
使用 NEXTVAL 和 CURRVAL 對序列進行操作。他們是偽列(pseudocolumn),行為類似于表列,但實際上并不存儲在表中。可以從偽列中進行選擇,但不能插入、更新或刪除它們的值。
Select emp_sequence.nextval
from? dual
修改序列
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000 CYCLE
刪除序列
DROP SEQUENCE emp_sequence?查詢序列
select * from? user_sequences| Sequence_Name | ?序列名 |
| Min_Value | 序列的最小值 |
| Max_Value? | 序列的最大值 |
| Increment_By? | 序列值之間的增量 |
| Cycle_Flag? | 一個標志,一旦達到Max_Value 值,用來表明該值能否再循環回Min_Value 值 |
| Order_Flag | ?一個標志,用來表明序列號是否按順序生成 |
| Cache_Size? | 內存中緩存的序列項的編號 |
| Last_Number? | 使用的或緩存的最后一個序列號,一般大于緩沖區中的最后一個值。Last_Number 列在普通的數據庫操作過程中不被更新,它在數據庫的重新啟動/恢復操作中使用。 |
| ALL_SEQUENCES? | 視圖列出了用戶擁有的所有序列,或授權該用戶或PUBLIC 所有用戶訪問的序列。由于ALL_SEQUENCES 視圖包含多個用戶的項,因此除已經列出的列外,它還包含一個Sequence_Owner 列 |
| DBA_SEQUENCES | ?視圖列出了數據庫的全部序列,它與ALL_SEQUENCES 視圖具有相同的列定義 |
參考資料:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6015.htm
https://www.cnblogs.com/sunice/p/10020953.html
https://www.alibabacloud.com/help/zh/doc-detail/135406.htm
總結
以上是生活随笔為你收集整理的oracle sequence 不同 会话 不连续_序列 Sequence的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 增大数据库链接_怎么增大MY
- 下一篇: mysql联合索引和单索引_mysql联