–oracle序列和表名沒直接對應關係的, 但是可以在表數據插入的時候用 序列名.nextval
①查詢數據庫所有的序列名稱
select * from user_sequences;
②獲取表的序列的下一個值
select 序列名.nextval from dual
③獲取表的id下一個值
SELECT NVL(MAX(TABLE_ID), 0) + 1 AS tableId FROM IOT_ACM_TABLE;
- 主鍵:
—表的主鍵可分別簡單主鍵和組合主鍵。簡單主鍵爲表中的一列,組合主鍵爲表中的幾列。
—主鍵的生成策略有許多種,其中,序列是Oracle常見的主鍵生成策略之一。
—主要的用途是生成表的主鍵值,序列的創建語法如下:
CREATE SEQUENCE 序列名
–[INCREMENT BY n]
–[START WITH n]
–[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
–[{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}];
例如:
create sequence ESC_USER_ID_SEQ
minvalue 1
maxvalue 9999999999999999999999999999
start with 3926
increment by 1
cache 100;
1)我們在INSERT語句中使用序列生成主鍵,只需要把序列名.NEXTVAL作爲值,傳遞給主鍵字段就可以了。
2)假如我們想獲取這個值,在程序中使用,我們可以通過下面的語句:SELECT 序列名.NEXTVAL FROM DUAL;