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;
①查询数据库所有的序列名称
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;
相关文章推荐
- ORACLE 批量插入 主键为自增序列 有几个字段数据从其他表导入的 有几个是固定的
- Oracle序列和主键映射
- oracle 利用序列和触发器实现主键自增demo
- Oracle中用一个序列给两个表创建主键自增功能的后果
- Oracle使用sequence(序列)+tirgger(触发器)实现auto_increment(主键自增)
- 琪露诺也能看懂的Oracle 主键值的序列自动生成与分配
- 4.2 MyBatis_映射文件_insert_Oracle使用序列生成主键演示和获取非自增主键的值_selectKey
- Oracle - 使用序列+触发器实现主键自增长
- oracle创建表,序列,触发器,自动生成唯一主键
- oracle 主键应用序列和触发器实现自动增长
- Oracle中主键、外键、索引、序列、唯一性约束的创建
- oracle实现自增长序列(主键)
- oracle 创建表 序列 注释 主键
- Oracle序列和主键映射
- Hibernate注解对应Oracle主键序列问题错误收集
- Oracle序列和触发器实现表的主键自增
- Oracle 实现主键自动增长之序列,触发器
- 【oracle】oracle数据库建立序列、使用序列实现主键自增
- Oracle创建序列作为自增主键
- oracle序列详解和创建自增主键