南大通用GBase8s 常用SQL語句(十五)
南大通用GBase8s 常用SQL語句(十五)
1.1 ALTER SEQUENCE 語句
使用 ALTER SEQUENCE 語 句修改序列物件的定義。該語句是 SQL ANSI/ISO 標準的擴充套件。
語法
元素 |
描述 |
限制 |
語法 |
max |
值的新上限 |
必須為 > CURRVAL 和 restart 的整數 |
精確數值 |
min |
值的新下限 |
必須為 < CURRVAL 和 restart 的整數 |
精確數值 |
owner |
sequence 的所有者 |
不能被此語句更改 |
所有者名稱 |
restart |
序列中新的第一個值 |
必須是在 INT8 範圍內的整數 |
精確數值 |
sequence |
現有序列的名稱 |
必須存在。不能是同義詞 |
識別符號 |
size |
記憶體中要預分配的值的新數目 |
大於 > 2 但 < 一個迴圈中的基數(= |( max - min )/ step |) |
精確數值 |
step |
連續值之間的新的間隔 |
必須是非零整數 |
精確數值 |
用法
ALTER SEQUENCE 語句可以修改 syssequences 系統目錄表中指定的序列物件的定義。
ALTER SEQUENCE 重新定義了現有的序列物件。它隻影響隨後生成的值(和序列快取記憶體中任何未使用的值)。您不能使用 ALTER SEQUENCE 語句重新命名序列,也不能更改序列的所有者。
要修改一個序列的定義,您必須是其所有者或 DBA 或具有對該序列的 Alter 許可權。只會修改您在 ALTER SEQUENCE 語句中顯式指定的序列定義的元素。如果您做出矛盾的更改(例如同時指定 MAXVALUE 和 NOMAXVALUE ,或同時指定 CYCLE 和 NOCYCLE 選項),則會發生錯誤。
示例
以下示例基於隨後的序列物件和表:
CREATE SEQUENCE seq_2
INCREMENT BY 1 START WITH 1
MAXVALUE 30 MINVALUE 0
NOCYCLE CACHE 10 ORDER;
CREATE TABLE tab1 (col1 int, col2 int);
INSERT INTO tab1 VALUES (0, 0);
INSERT INTO tab1 (col1, col2) VALUES (seq_2.NEXTVAL, seq_2.NEXTVAL)
SELECT * FROM tab1;
col1 col2
0 0
1 1
ALTER SEQUENCE seq_2
RESTART WITH 5
INCREMENT by 2
MAXVALUE 300;
INSERT INTO tab1 (col1, col2) VALUES (seq_2.NEXTVAL, seq_2.NEXTVAL)
INSERT INTO tab1 (col1, col2) VALUES (seq_2.NEXTVAL, seq_2.NEXTVAL)
SELECT * FROM tab1;
col1 col2
0 0
1 1
5 5
7 7
INCREMENT BY 選項
使用 INCREMENT BY 選項指定一個序列中連續數字之間的新間隔。間隔(或 step 值)可以 INT8 範圍內的一個正整數(對遞增順序)或負整數(對遞減順序) 。 BY 關鍵字是可選的。
RESTART WITH 選項
使用 RESTART WITH 選項指定該序列的新的第一個數字。如果使用 ALTER SEQUENCE 語句指定了 min 或 max 值,則 restart 值必須是 INT8 範圍內的整數,它大於等於 min 值(對於遞增順序),或小於等於 max 值(對於遞減順序)。 WITH 關鍵字是可選的。
當您使用 RESTART 選項修改序列時, restart 值儲存在 syssequences 系統目錄表中,直到 NEXTVAL 操作中第一次使用該序列物件。在此以後,該值就在系統目錄中復位。使用 dbschema 實用程式可以遞增資料庫中的序列物件,從而在生成的數字中產生間隔,您可能不希望這些數字在需要序列化整數的應用程式中出現。
MAXVALUE 或 NOMAXVALUE 選項
使用 MAXVALUE 選項指定序列中值的新的上限。最大值(或 max )必須是 INT8 範圍內的整數,它大於 sequence .CURRVAL 和 restart (或者,如果未指定 restart ,則大於原 CREATE SEQUENCE 語句中的 origin )。
使用 NOMAXVALUE 選項,以用新的預設最大值(對遞增順序為 2e64 ;對遞減順序為 -1 )替換當前的限制值。
MINVALUE 或 NOMINVALUE 選項
使用 MINVALUE 選項指定序列中值的新下限。最小值(或 min )必須是 INT8 範圍內的整數,它小於 sequence .CURRVAL 和 restart (或者,如果未指定 restart ,則小於原 CREATE SEQUENCE 語句中的 origin )。
使用 NOMINVALUE 選項以用預設值(對於遞增順序為 1 ;對於遞減順序為 -(2e64) )替換當前下限。
CYCLE 或 NOCYCLE 選項
使用 CYCLE 選項替換 NOCYCLE 屬性,在序列到達最大(升序)或最小(降序)限制值後繼續生產序列值。在遞增順序到達 max 後,它為下一個值生產 min 值。在遞減順序到達 min 後,它為下一個值生產 max 值。
使用 NOCYCLE 選項可防止序列在到達宣告的限制值之後生成更多的值。一旦序列到達該限制值,對 sequence .NEXTVAL 的下一次引用將返回一條錯誤訊息。
CACHE 或 NOCACHE 選項
使用 CACHE 選項指定在記憶體中預分配以快速訪問的序列值的新數目。快取記憶體大小必須是在 INT 範圍內的整數,它小於迴圈中的個數(或小於 (| max - min )/ step | )。最小大小為 2 個預分配的值。
使用 NOCACHE 在記憶體中不預分配值。(另見 CREATE SEQUENCE 語句 中有關 SEQ_CACHE_SIZE 的描述。 )
ORDER 或 NOORDER 選項
這些關鍵字對序列的行為沒有影響。序列始終以使用者請求的順序向使用者發出值,就像 ORDER 關鍵字是始終指定的一樣。但是, ALTER SEQUENCE 語句接受 ORDER 和 NOORDER 關鍵字,以同在 SQL 的其它方言中序列物件的實現相相容。
GBASE 官網:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70009077/viewspace-2839480/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 南大通用GBase8s SQL常用SQL語句(十九)SQL
- 南大通用GBase8s SQL常用SQL語句(二十)SQL
- 南大通用GBase8s 常用SQL語句(十六)SQL
- 南大通用GBase8s 常用SQL語句(十七)SQL
- 南大通用GBase8s SQL常用SQL語句(十八).docxSQL
- 南大通用GBase8s SQL常用SQL語句(二十一)SQL
- 常用SQL語句SQL
- sql常用語句SQL
- oracle常用SQL語句OracleSQL
- 常用的SQL語句SQL
- SQL常用語句整理SQL
- 常用的SQL 語句SQL
- MySql 常用Sql語句MySql
- DBA常用SQL語句SQL
- 常用 SQL 語句大全SQL
- 常用sql進階語句SQL
- SQL 常用語句一覽SQL
- 常用SQL語句彙總SQL
- sql server中常用語句SQLServer
- DBA常用SQL語句系列SQL
- DBA常用SQL語句[sql server] 2SQLServer
- sqlserver dba常用的sql語句SQLServer
- mysql 常用sql語句 簡介MySql
- MySQL中常用的SQL語句MySql
- 資料庫常用sql 語句資料庫SQL
- MYSQL 常用sql語句小結MySql
- 常用SQL語句優化技巧SQL優化
- Oracle維護常用SQL語句OracleSQL
- 常用Sql語句積累(二)SQL
- 通用SQL語句修改欄位預設值SQL
- 資料庫常用的sql語句大全--sql資料庫SQL
- Android原生SQLite常用SQL語句AndroidSQLite
- postgresql dba常用sql查詢語句SQL
- MySql常用操作SQL語句彙總MySql
- 資料庫常用操作SQL語句資料庫SQL
- 轉:維護常用SQL語句收集!SQL
- 織夢cms常用的SQL語句_dedecmsSQL
- MySQL中常用SQL語句的編寫MySql