postgresql 实现更新序列的起始值

迁移老数据到新的数据库,需要把id迁移过来,这时序列值就需要修改为当前最大值加1了。

使用这个语句就可以让s_seq的序列值从7开始了。

alter sequence s_seq restart with 7;

补充:PostgreSQL设置主键自增、PostgreSQL重置主键自增从1开始,PostgreSQL清空表数据自增从1开始

PostgreSQL设置主键自增、PostgreSQL重置主键自增从1开始

自增字段

从1开始

清空表数据,自增从1开始

自增字段

PostgreSQL设置主键自增

CREATE TABLE student (
 id serial NOT NULL , //serial序列号
 name varchar(50) COLLATE pg_catalog.default NOT NULL,
 age int4,
 information text COLLATE pg_catalog.default,
 CONSTRAINT _pkey PRIMARY KEY (id)
);

从1开始

PostgreSQL重置主键自增从1开始

TRUNCATE student RESTART IDENTITY;

清空表数据,自增从1开始

PostgreSQL重置主键自增从1开始

//清空表数据
TRUNCATE student;
//清空表数据,自增从1开始
TRUNCATE student RESTART IDENTITY;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • PostgreSQL标准建表语句分享

    如下所示: -- 建表 CREATE TABLE if not exists public.user ( id character varying(32) NOT NULL DEFAULT sys_guid(), name character varying(100) NOT NULL, gender character varying(50) NOT NULL, age character varying(10) NOT NULL, id_no character varying(50) NO

  • postgresql 数据库 与TimescaleDB 时序库 join 在一起

    之前在CSDN阅读资料时,发现有人问怎么把 postgresql数据库 的表 跟TimescaleDB 时序库的表 join在一起,正好我在查询数据的时候遇到过这个问题 ,我说一下我的解决方案 我选择的是postgresql数据库的fdw功能(postgres_fdw插件) ** 一 安装postgres_fdw插件 1.1安装postgres_fdw插件 ** su – postgres -bash-4.2$ psql postgres=# \c hrmwv2 #(数据库名字) Create

  • PostgreSQL之pgdump备份恢复操作

    逻辑备份在恢复时,介于逻辑备份与故障时间点之间的数据难以恢复,故一般不采取逻辑备份方式进行数据库备份,但逻辑适用于跨平台跨版本的数据迁移: 逻辑备份恢复主要以下三种: pg_dump pg_dumpall copy 本小节主要讲解pg_dump pg_dump备份 只能备份单个数据库,不会导出角色和表空间相关的信息 -F c 备份为二进制格式,压缩存储.并且可被pg_restore用于精细还原 -F p 备份为文本,大库不推荐 pg_dump恢复 psql dbname -U username

  • postgreSQL 数字与字符串类型转换操作

    数字转字符串 select cast(123 as VARCHAR); 字符串转数字 select cast('123' as INTEGER); 以此类推,应该也可以转换为其他数据类型. 补充:pgSql, mySql中字符串转化为数字 pgSql 语法 to_number(text, text) 例子 select to_number(trim(both 'ibs' from classname), '999999') as cn from bbs order by cn /*trim(bo

  • postgresql 导出建表语句的命令操作

    我就废话不多说了,大家还是直接看命令吧~ pg_dump -h host -U postgres -d dbname -O -s -t "table_name" > name.sql 补充:PostgreSQL使用pg_dump导出单个数据表的insert语句 PostgreSQL自带的pgadmin4工具没有办法生成数据表的insert语句,这使得想要提取单个表的数据,插入到不同环境的相同表中变成很麻烦的一件事,使用PostgreSQL的pg_dump工具可以实现该功能. 使用

  • postgresql修改自增序列操作

    在 mysql 中,实现 id 自增的方式是依靠加一个 auto_increment 标志,而在 pgsql 中,id 自增是通过序列 SEQUENCE. 创建表时设置自增序列为: CREATE TABLE "config" ( "id" int4 NOT NULL DEFAULT nextval('config_id_seq'::regclass), ... }; 如果需要修改创建表之后的序列,如: ----删除前先解除 id 对该序列的依赖 ALTER TABL

  • 在postgresql数据库中判断是否是数字和日期时间格式函数操作

    在编写GreenPlum函数的过程中,遇到要判断字符串是否是数字和日期格式的情况,基于GreenPlum和postgresql的亲缘关系,找到了下面两个函数. --1.判断字符串是否是数字 CREATE OR REPLACE FUNCTION isnumeric(txtStr VARCHAR) RETURNS BOOLEAN AS $$ BEGIN RETURN txtStr ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$'; END; $$ LANGUAGE 'plpgsq

  • postgresql 实现更新序列的起始值

    迁移老数据到新的数据库,需要把id迁移过来,这时序列值就需要修改为当前最大值加1了. 使用这个语句就可以让s_seq的序列值从7开始了. alter sequence s_seq restart with 7; 补充:PostgreSQL设置主键自增.PostgreSQL重置主键自增从1开始,PostgreSQL清空表数据自增从1开始 PostgreSQL设置主键自增.PostgreSQL重置主键自增从1开始 自增字段 从1开始 清空表数据,自增从1开始 自增字段 PostgreSQL设置主键自

  • postgresql 中的序列nextval详解

    一.postgresql中的序列 1.1 场景需求 需要向下图一样,需要对产品编码编码设置一个序列.编码规则 SKU + 序列号: 1.2 序列 序列是基于bigint算法的,因此范围是不能超过一个八字节 整数的范围(-9223372036854775808 到 9223372036854775807). 由于nextval和setval调用绝不会回滚, 如果需要序数的"无间隙"分配,则不能使用序列对象.可以 通过在一个只包含一个计数器的表上使用排他锁来构建无间隙的分配, 但是这种方案

  • postgresql重置序列起始值的操作

    我就废话不多说了,大家还是直接看代码吧~ -- 序列重置到1000 alter sequence sequence_name restart with 1000 -- 验证 SELECT nextval('sequence_name'); 补充:postgresql重置序列和自增主键 1. 问题背景 数据表中插入了几条测试数据,后又手动删除,导致后面插入数据的时候报主键冲突: ERROR: duplicate key value violates unique constraint "table

  • 深入解读PostgreSQL中的序列及其相关函数的用法

    一.简介 序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表.一个序列对象通常用于为行或者表生成唯一的标识符. 二.创建序列 方法一:直接在表中指定字段类型为serial 类型 david=# create table tbl_xulie ( david(# id serial, david(# name text); NOTICE: CREATE TABLE will create implicit sequence "tbl_xulie_id_seq"

  • PostgreSQL自动更新时间戳实例代码

    目录 什么是PostgreSQL时间戳数据类型? 一.为什么 二.如何做 总结 什么是PostgreSQL时间戳数据类型? 在PostgreSQL中,下一个数据类型是 TIMESTAMP ,它可以存储 TIME 和 DATE 值.但它不支持任何 时区数据.这意味着当我们转换数据库服务器的 时区时, 时间戳值将存储在数据库中,并且不能重复修改. 在PostgreSQL中,TIMESTAMP数据类型分为 两种时间数据类型,如下: timestamp timpstamptz Timestamp: :

  • mysql自增ID起始值修改方法

    在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法.通常的设置自增字段的方法:创建表格时添加: 复制代码 代码如下: create table table1(id int auto_increment primary key,...) 创建表格后添加: 复制代码 代码如下: alter table table1 add id int auto_increment primary key 自

  • python消除序列的重复值并保持顺序不变的实例

    python 消除序列的重复值,并保持原来顺序 1.如果仅仅消除重复元素,可以简单的构造一个集合 $ python Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>&g

  • 基于TensorFlow常量、序列以及随机值生成实例

    TensorFlow 生成 常量.序列和随机值 生成常量 tf.constant()这种形式比较常见,除了这一种生成常量的方式之外,像Numpy一样,TensorFlow也提供了生成集中特殊的常量的函数: tf.zeros(shape, dtype=tf.float32, name=None) 三个参数的意思显而易见,返回指定形状的全零张量 tf.zeros_like(tensor, dtype=None, name=None, optimizer=True) 与函数的名字一致,传入一个张量,最

  • echarts实现获取datazoom的起始值(包括x轴和y轴)

    我就废话不多说了,大家还是直接看代码吧~ let option = {} //你的echarts图表的配置,这里我就不贴我的了 myChart.setOption(option); //开始 let startValue = myChart.getModel().option.dataZoom[0].startValue; let endValue = myChart.getModel().option.dataZoom[0].endValue; let start = myChart.getM

  • C#使用表达式树(LambdaExpression)动态更新类的属性值(示例代码)

    有看过我之前发表过的C#相关文章分享和阅读过我代码的朋友们可能会在我的代码里面经常看到各种各样的λ表达式动态拼接,C#的λ表达式树是一个好东西,也是别的语言学不来的,熟悉掌握λ表达式就能够实现各种场景的个性化操作,如动态拼接查询条件.排序方式等,也能够实现替代反射的高性能操作,比如我们常用到的IQueryable和IEnumerable,每个扩展方法就全是λ表达式树. 本文给大家分享C#使用表达式树(LambdaExpression)动态更新类的属性值的相关知识,在某些业务中会遇到需要同步两个类

随机推荐