–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;