更新时间:2026-07-28 GMT+08:00
为什么SEQUENCE的编号存在间隙?
答:为了提高并发性,每个会话按照序列的CACHE参数大小,在用户的私有内存空间缓存一定数量的序列值。会话结束后会丢弃会话缓存的序列值,因此序列值会出现跳跃。
--创建表和序列。 gaussdb=# CREATE SEQUENCE seq_test CACHE 10; --使用nextval查看下一个序列的值,并退出会话。 gaussdb=# SELECT nextval('seq_test'); nextval --------- 1 (1 row) gaussdb=# SELECT nextval('seq_test'); nextval --------- 2 (1 row) --在另一个会话中使用nextval()查看下一个序列的值。 gaussdb=# SELECT nextval('seq_test'); nextval --------- 11 (1 row) --删除序列。 gaussdb=# DROP SEQUENCE seq_test;
父主题: 其他