创建序列
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)

综上所述,一次获取多个序列值需要生成多行数据
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 的数量就可以,非常简洁
上一篇:Go语言实战