文章目录

示例

drop sequence if exists seq_test_id;
create sequence seq_test_id;
select nextval('seq_test_id'); --对应 usage 权限
select setval('seq_test_id',10,false);--对应 update 权限
select nextval('seq_test_id'); --usage 结果为 10+0=10

select setval('seq_test_id',20,true);--update
select nextval('seq_test_id'); --usage 结果为 20+1=21

select currval('seq_test_id'); -- 对应 select 权限

drop sequence if exists seq_test_id;
create sequence seq_test_id;
select currval('seq_test_id'); -- select 

实操

postgres=# drop sequence if exists seq_test_id;
DROP SEQUENCE
postgres=# create sequence seq_test_id;
CREATE SEQUENCE
postgres=#
postgres=# select currval('seq_test_id'); -- select
ERROR:  currval of sequence "seq_test_id" is not yet defined in this session
postgres=#
postgres=#
postgres=#
postgres=#
postgres=# drop sequence if exists seq_test_id;
DROP SEQUENCE
postgres=# create sequence seq_test_id;
CREATE SEQUENCE
postgres=# select nextval('seq_test_id'); --usage
 nextval
---------
       1
(1 row)

postgres=# select setval('seq_test_id',10,false);--update
 setval
--------
     10
(1 row)

postgres=# select nextval('seq_test_id'); --usage
 nextval
---------
      10
(1 row)

postgres=#
postgres=# select setval('seq_test_id',20,true);--update
 setval
--------
     20
(1 row)

postgres=# select nextval('seq_test_id'); --usage
 nextval
---------
      21
(1 row)

postgres=#
postgres=# select currval('seq_test_id'); -- select
 currval
---------
      21
(1 row)

postgres=#
postgres=# drop sequence if exists seq_test_id;
DROP SEQUENCE
postgres=# create sequence seq_test_id;
CREATE SEQUENCE
postgres=# select currval('seq_test_id'); -- select
ERROR:  currval of sequence "seq_test_id" is not yet defined in this session
postgres=#
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐