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 } ] |
| |
| |
| 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'; |
查看当前序列属性#
给表的主键指定创建好的序列#
| alert table 表名 alert colum '主键id' set default 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才会递增数列 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)