Oracle一次获取多个序列值
- SQL 语句一次获取多个序列值
- 获取序列中的多个值
- connect by level 生成多行数据
 
- JDBC 一次获取多个序列值
- MyBatis 一次获取多个序列值
SQL 语句一次获取多个序列值
获取序列中的多个值
创建序列
CREATE SEQUENCE test_user_seq;
获取一个序列值
SELECT test_user_seq.nextval FROM dual;

 有一个比较传统的方法构造多行数据,就是使用union all
SELECT 1 FROM DUAL
UNION ALL
SELECT 1 FROM DUAL

 生成多行数据的方法有了,那么一次生成多个序列的方法也有了
SELECT test_user_seq.nextval 
FROM (
SELECT 1 FROM DUAL
UNION ALL
SELECT 1 FROM DUAL)

 综上所述,一次获取多个序列值需要生成多行数据
connect by level 生成多行数据
union all 生成多行数据这个方法,性能比较差,当需要的序列比较多的时候,SQL 比较长,数据库解析SQL 耗时也多,而且还需要拼接sql, 使用
 connect by level 生成多行数据就比较方便
select level from dual connect by level <= 5;

 一次生成了5行数据,那么就可以用这个方式,获取5个序列值
SELECT test_user_seq.nextval FROM (
select level from dual connect by level <= 5
);

 需要生成几个序列值,修改一下 level 的数量就可以,非常简洁





![[附源码]计算机毕业设计楼盘销售管理系统Springboot程序](https://img-blog.csdnimg.cn/d720357cad964dc5b1165e6fdcf9668c.png)











