Oracle:序列和主鍵

–oracle序列和表名沒直接對應關係的, 但是可以在表數據插入的時候用 序列名.nextval

①查詢數據庫所有的序列名稱
select * from user_sequences;
②獲取表的序列的下一個值
select 序列名.nextval from dual
③獲取表的id下一個值
SELECT NVL(MAX(TABLE_ID), 0) + 1 AS tableId FROM IOT_ACM_TABLE;

  1. 主鍵:
    —表的主鍵可分別簡單主鍵和組合主鍵。簡單主鍵爲表中的一列,組合主鍵爲表中的幾列。
    —主鍵的生成策略有許多種,其中,序列是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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章