做過web開發的人員基本上都知道,資料庫表中的主鍵值有的時候我們會用數字類
型的並且自增。這樣mysql、sql server中的都可以使用工具建立表的時候很容
易實現。但是oracle中沒有設定自增的方法,一般情況我們會使用序列和觸發器
來實現主鍵自增的功能。下面這面文章主要介紹序列。
序列: 是oacle提供的用於產生一系列唯一數字的資料庫物件。
1. 自動提供唯一的數值
2. 共享物件
3. 主要用於提供主鍵值
4. 將序列值裝入記憶體可以提高訪問效率
1、 要有建立序列的許可權 create
sequence 或 create any sequence
2、 建立序列的語法
create
sequence
sequence
//建立序列名稱
[increment by n] //遞增的序列值是n 如果n是正數就遞增,如果
是負數就遞減 預設是1
[start with n] //開始的值,遞增預設是minvalue 遞減是
// maxvalue
//最大值
//最小值
//迴圈/不迴圈
;//分配並存入到記憶體中
nextval 返回序列中下乙個有效的值,任何使用者都可以引用
currval 中存放序列的當前值
nextval 應在 currval 之前指定 ,二者應同時有效
create
sequence seqemp increment by
1 start with
1 maxvalue 3 minvalue 1
cycle cache 2;
//先nextval 後 currval
select seqemp.nextval from dual;
select seqemp.currval from dual;
cache//解釋
] //最大值
//最小值
//迴圈/不迴圈
;//分配並存入到記憶體中
例如: alter sequence seqemp maxvalue 5;
select seqemp.nextval from dual;
修改序列的注意事項:
1. 必須是序列的擁有者或對序列有 alter 許可權
2. 只有將來的序列值會被改變
3. 改變序列的初始值只能通過刪除序列之後重建序列的方法實現
1. 使用drop sequence 語句刪除序列
2. 刪除之後,序列不能再次被引用
Oracle序列號詳解
例1 建立序列 create sequence abc increment by 1 start with 1 maxvalue 9999999999 nocycle nocache 語法詳解 create sequence 序列名 increment by n 1 start with n 2 3...
oracle序列使用詳解
建立序列 create sequence seq test 查詢序列的下乙個值 select seq test.nextval from dual 查詢當前值 select seq test.currval from dual 查詢當前序列上乙個值 select seq test.有最大值的非迴圈序...
oracle中的序列
oracle中的序列 sequence 的作用相當與sqlserver中的identify作為乙個表的自動增加且唯一標識的列 下面我就用乙個簡單的序列來實現 1.建立序列 create sequence sq sq宣告乙個序列的名稱 start with 1 宣告序列的開始值 immediate b...