您的位置:首页 > 数据库 > Oracle

Oracle:序列和主键

2017-10-11 16:40 197 查看
–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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: