Postgres学习笔记-Sequence自增序列

Sequence: 根据指定的规范生成整数序列

#

创建序列#

CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ]
[ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
[ OWNED BY { table.column | NONE } ]
/* 创建默认序列,从1开始,递增幅度为1,最大值为2^63-1*/
create sequence 序列名称;
/* 创建指定序列 */
create sequence 序列名称 increment by 递增幅度 minvalue 最小值 maxvalue 最大值 start with 开始值;

修改序列的值#

方法 1#

select setval('序列名称',修改后的值);

方法 2#

alter SEQUENCE 序列名称 RESTART WITH 修改后的值;

删除序列#

drop sequence IF EXISTS 序列名称;

查看所有序列#

SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';

查看当前序列属性#

select * from 序列名称;

给表的主键指定创建好的序列#

alert table 表名 alert colum '主键id' set default nextval('要指定的序列名称');

序列自增#

select nextval('序列名称');

序列函数#

nextval: 递增序列对象到它的下一个数值并且返回该值
currval: 获取当前序列最后一次返回的值,如果该序列创建后未被调用,它可能会返回一个错误,可以用于判断该序列函数是否被其他会话调用
lastval: 和currval功能基本一直,它不需要序列名称作为参数,可以直接调用
setval:
1. setval(regclass, bigint):重置序列的计数器值,设置序列的计数器的值未指定值,将序列的is_calld字段设置未True,下一次nextval则会先递增序列,随后返回数值
2. setval(regclass, bigint, boolean):与上面的功能基本一直,多了一个布尔参数,这个参数是指定is_calld的值,如果将is_calld参数的值设定为false,则下一次nextval返回该数值,下下一次nextval才会递增数列

作者:jruing

出处:https://www.cnblogs.com/jruing/p/17579398.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Jruing  阅读(277)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示