首页 > 其他分享 >Postgres学习笔记-Sequence自增序列

Postgres学习笔记-Sequence自增序列

时间:2023-07-25 11:47:08浏览次数:42  
标签:自增 setval Postgres nextval 递增 Sequence 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才会递增数列

标签:自增,setval,Postgres,nextval,递增,Sequence,sequence,名称,序列
From: https://www.cnblogs.com/jruing/p/17579398.html

相关文章

  • PostgreSQL体系结构--物理结构
    物理结构对应在操作系统中组成的数据库目录和相关文件来构成一、基础目录$PGDATA:baseglobalpg_commit_tspg_walpg_tblspc:alternativedatabasefiles二、目录布局base --存放默认数据库的目录global --存放的数据库相关的字典视图或者表文件 pg_commit_ts --事......
  • Linux CentOS 7 卸载 PostgreSQL
    1、查看服务状态并停止服务systemctlstatuspostgresqlsystemctlstoppostgresql2、使用YUM命令卸载PostgreSQLyumremovepostgresql*3、验证RPM包是否卸载干净rpm-qa|greppostgresql4、删除PostgreSQL数据文件和配置文件目录(非必要)rm-rf/var/lib/p......
  • Linux CentOS 7 安装 PostgreSQL v14
    1、安装PostgreSQL的RPM资源库sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm2、安装PostgreSQLServersudoyuminstall-ypostgresql14-server3、初始化PostgreSQLsudo/usr/pgsql-14......
  • PostgreSQL 相关
    pgsql下载地址.net库nugetnpgsql4.1.12查询时表名要加"",否则会报关系"xx"不存在。heidisql列举数据库有错误,public并不是数据库名称。列举数据库sql:SELECTdatnameFROMpg_database;......
  • POJ 1458 Common Subsequence(动态规划)
    传送门代码如下:#include<iostream>#include<cstdio>usingnamespacestd;intmaxLen[1000][1000];intmain(){strings1,s2;while(cin>>s1>>s2){intlength1=s1.length();intlength2=s2.length();......
  • 查询mysql 某个表下一个自增id
    查询MySQL某个表下一个自增ID作为一名经验丰富的开发者,你经常需要与数据库打交道。在MySQL中,自增ID是一种常见的使用方式,用于唯一标识每一条记录。当你需要查询某个表的下一个自增ID时,可以按照以下步骤进行操作。步骤概览下面是整个查询MySQL某个表下一个自增ID的流程概览:步......
  • PostgreSql
    pgAdmin:是一款专门针对PostgreSQL数据库的客户端管理软件,该版本在pgAdmin3的基础上做了较大的架构变化,由之前的CS架构变更为基于浏览器的BS架构。WITH查询(通用表表达式)WITH通用表表达式可以认为是定义在一个查询中的临时表。WITH语句的结构分为WITH子句中的辅助语句和WITH子......
  • debezium同步postgresql数据至kafka
    0实验环境全部部署于本地虚拟机debeziumdocker部署postgresql、kafka本机部署1postgresql1.1配置设置postgres密码为123仿照example,创建databasepostgres,schemeinventory,tablecustomers因为postgres用户有replication权限,所以可以直接使用修改postgresql.conf文......
  • 如何测量网络对PostgreSQL性能的影响
    在PostgreSQL数据库和应用服务器之间,通常会有许多基础设施层。最常见的有连接池、负载均衡器、路由器、防火墙等。我们经常会忘记或想当然地认为网络hop以及其对整体性能造成的额外开销。但在很多情况下,这可能会导致严重的性能损失和整体吞吐量下降。如何检测和测量影响目前还没......
  • redis实现自增序号
    Redis实现自增序号简介在开发过程中,经常会遇到需要生成自增序号的需求,例如订单号、用户ID等。Redis是一种基于内存的高性能键值数据库,它提供了自增操作,非常适合用来生成唯一的自增序号。本文将介绍如何使用Redis实现自增序号,并给出详细的步骤和代码示例。步骤步骤描述......