發現廣告阻擋器!
本站的開銷是靠廣告收入來彌補的。請將本站加入允許名單內。謝謝!
SQL SEQUENCE 和 NEXTVAL | |
Oracle 使用 SEQUENCE 概念來創建數值主鍵值,當我們將數據行添加到表格中時。在 MySQL 和 SQL Server 中,數值主鍵的生成與個別表格相關,但在 Oracle 中,SEQUENCE 構造是單獨創建的,並不與特定的表格相關。 語法在 Oracle 中創建 SEQUENCE 的語法如下:CREATE SEQUENCE SEQUENCE_NAME
[START WITH {Initial_Value}] [INCREMENT BY {interval}]; {Initial_Value}是序列的起始值,而{interval}是連續序列號之間的間隔。 [START WITH] 和 [INCREMENT BY] 都是可選字段。如果未指定,系統會將 {Initial_Value} 和 {interval} 都設為1。 範例舉例來說,假設我們有一個具有以下結構的表格: Table USER_TABLE
並且我們想使用以下序列生成 userid: CREATE SEQUENCE SEQ_USER START WITH 5 INCREMENT BY 5;
我們指定我們想要在 INSERT INTO 語句中使用序列和 NEXTVAL 函數的順序如下: INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Washington', 'George');
INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Jefferson', 'Thomas'); 現在,該表格會有以下兩筆資料: Table USER_TABLE
值得注意的是,序列與表格是沒有直接關係的。換句話說,一個序列可以用於為多個表格產生主鍵值,即使它被應用於不同的表格,該序列仍然繼續。例如,假設我們有第二個表格,名為 NEW_USERS,其結構與 USER_TABLE 相同,我們在執行上述兩個 SQL 命令後發出以下SQL命令: INSERT INTO NEW_USER VALUES (SEQ_USER.NEXTVAL, 'Adams', 'John');
NEW_USER 表格將擁有以下這一筆資料: Table NEW_USER
Userid 為15,因為這是10之後的下一個值。
|
本站的開銷是靠廣告收入來彌補的。請將本站加入允許名單內。謝謝!