oracle主鍵序列的建立,刪除,修改序列起始值
事件背景:
為客戶部署oracle資料庫後需要將老庫中的資料導過來,老庫的單表資料2W+由於在為新庫的表建立主鍵自增序列時設定的起始值是3000,導致後續客戶使用時,在插入資料時丟擲資料庫java.sql.SQLException:ORA-00001:違反唯一約束條件異常
解決方案:
修改序列起始值:
方法1: 直接刪除當前的序列,重新建立。為避免使用者正常使用,儘量不要使用這種方式。
方法2:通過Increment By來修改序列起始值,具體步驟如下
1、ALTER SEQUENCE SEQ_USER_COMBO INCREMENT BY 5000;
2、SELECT SEQ_USER_COMBO.NEXTVAL FROM DUAL;
3、ALTER SEQUENCE SEQ_USER_COMBO INCREMENT BY 1;
SEQ_USER_COMBO:本庫中的序列名
5000:表示在原始初始值的基礎上增加5000
INCREMENT BY 1:表示自增1
如果不嫌累的話還有一種方法:使用方法2中的第二步進行迴圈增加
SELECT SEQ_USER_COMBO.NEXTVAL FROM DUAL;
如果只使用這個語句每執行一次起始值增加1
1、ALTER SEQUENCE SEQ_USER_COMBO INCREMENT BY 5000;
2、SELECT SEQ_USER_COMBO.NEXTVAL FROM DUAL;
如果在迴圈執行2之前先執行一次1,那麼每次迴圈增加的值就是5000
建立序列:
create sequence SEQ_USER_COMBO
minvalue 0 --序列最小值
maxvalue 999999999999999999 --序列最大值
start with 3000 ---序列起始值
increment by 1 ---序列自增值
cache 20; ---定義存放序列的記憶體塊的大小,預設為20
刪除序列:
drop sequence SEQ_USER_COMBO; ---序列名
相關文章
- oracle 修改序列起始值Oracle
- Oracle序列使用:建立、刪除Oracle
- Oracle重置序列(不刪除重建方式)Oracle
- 通用mapper用oracle序列作為主鍵APPOracle
- ORACLE表空間的建立修改刪除Oracle
- oracle 序列的建立與使用Oracle
- Oracle刪除主鍵保留索引的方法Oracle索引
- Oracle 建立序列語句Oracle
- Oracle建立和使用序列Oracle
- PostgreSQL如何設定主鍵序列?SQL
- postgresql重置序列和自增主鍵SQL
- ORACLE批量刪除無主鍵重複資料Oracle
- [MYSQL][1]建立,修改,刪除表MySql
- Oracle序列Oracle
- oracle 序列Oracle
- Oracle 增加 修改 刪除 列Oracle
- MySQL新增列、刪除列,建立主鍵等常用操作總結MySql
- oracle job的建立和刪除Oracle
- mysql-刪除和新增主鍵MySql
- Oracle - Sequence序列Oracle
- Oracle序列sequenceOracle
- oracle之序列Oracle
- STL序列式容器中刪除元素的方法和陷阱 一 (轉)
- Oracle 增加修改刪除欄位Oracle
- SAP 序列號裡'主批次'與'庫存批次'不同,如何修改?
- oracle資料庫建立Squence序列並查詢Oracle資料庫
- oracle為資料庫每張表建立序列Oracle資料庫
- ORACLE sequence各引數及建立修改刪除使用詳解示例Oracle
- oracle修改表增加列刪除列修改列Oracle
- Oracle使用者的建立和刪除Oracle
- Oracle OCP(23):序列Oracle
- Oracle之Sequence(序列)Oracle
- oracle 序列 詳解Oracle
- oracle 序列詳解Oracle
- Oracle 建立主鍵自增表Oracle
- MySQL建立索引、修改索引、刪除索引的命令語句MySql索引
- 資料完整性約束:主鍵、外來鍵、各種約束的建立刪除語句
- 修改主鍵的SQLSQL