PG 中 序列的 usage,update,select使用示例
【代码】PG 中 序列的 usage,update,select使用示例。
·
示例
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=#
更多推荐
所有评论(0)