Postgresql数据库之创建和修改序列的操作

创建序列

(从1开始,递增幅度1,最大值无上限):

create sequence fl_user_seq increment by 1 minvalue 1 no maxvalue start with 1;

更改序列值

(方法中两个参数分别是1.序列名字,2.序列修改后值):

select setval('fl_user_seq ', 88);

Navicat Premium中序列位置如下图:

补充:PostgreSQL 序列增删改

创建序列

CREATE SEQUENCE if not exists test_mergetable_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
//或者:
create sequence if not exists test_mergetable_id_seq increment by 1 minvalue 1 no maxvalue start with 1; 

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

alter table test_mergetable alter column "i_id" set default nextval('test_mergetable_id_seq');

设置序列自增长从当前最大值开始

SELECT setval('test_mergetable_id_seq', (SELECT MAX(i_id) FROM test_mergetable));
alter sequence test_mergetable_id_seq start with 12;

删除序列

drop sequence IF EXISTS test_mergetable_id_seq

查看序列

SELECT nextval('test_mergetable_id_seq')

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

(0)

相关推荐

  • postgresql 中的序列nextval详解

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

  • 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重置序列起始值的操作

    我就废话不多说了,大家还是直接看代码吧~ -- 序列重置到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 if not exists test_mergetable_id_seq INCREMENT 1 MINVALUE 1 MAXVALUE 999999999 START 1 CACHE 1; //或者: create sequence if not exists test_mergetable_id_seq increment by 1 minvalue 1 no maxvalue start with 1; 指定序列(给表的主键指定创建好的序列) al

  • 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 Sequence序列的使用详解

    PostgreSQL是一种关系型数据库,和Oracle.MySQL一样被广泛使用.平时工作主要使用的是PostgreSQL,所以有必要对其相关知识做一下总结和掌握,先总结下序列. 一. Sequence序列 Sequence是一种自动增加的数字序列,一般作为行或者表的唯一标识,用作代理主键. 1.Sequence的创建 例子:创建一个seq_commodity,最小值为1,最大值为9223372036854775807,从1开始,增量的步长为1,缓存为1的循环排序Sequence. SQL语句如

  • PostgreSQL 序列绑定字段与不绑定字段的区别说明

    序列绑定字段与不绑定字段的区别 绑定字段 构造数据 drop sequence if exists test_id_seq; create sequence test_id_seq; drop table if exists test; create table test(id int default nextval('test_id_seq'), name text); alter sequence test_id_seq owned by test.id; 测试 test=# drop ta

  • Postgresql数据库之创建和修改序列的操作

    创建序列 (从1开始,递增幅度1,最大值无上限): create sequence fl_user_seq increment by 1 minvalue 1 no maxvalue start with 1; 更改序列值 (方法中两个参数分别是1.序列名字,2.序列修改后值): select setval('fl_user_seq ', 88); Navicat Premium中序列位置如下图: 补充:PostgreSQL 序列增删改 创建序列 CREATE SEQUENCE if not e

  • 在postgresql数据库中创建只读用户的操作

    在pg数据库中创建只读用户可以采用如下方法.大体实现就是将特定schema的相关权限赋予只读用户. --创建用户 CREATE USER readonly WITH ENCRYPTED PASSWORD '123456'; --设置用户默认开启只读事务 ALTER USER readonly SET default_transaction_read_only = ON; --将schema中usage权限赋予给readonly用户,访问所有已存在的表 GRANT usage ON SCHEMA

  • 数据库表的创建、管理和数据操作(实验一)

    今天我们就以实验的形式对表的创建.管理和数据操作进行学习,上课吧. [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识. [实验要求]:利用SQL语言进行数据库表的各种操作: 1.数据库表的创建.修改和删除操作. 2.向表中进行数据的插入.删除和修改操作. [实验内容] 1. 利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student.Course.SC. 2.利用INSERT.UPDATE和DELETE语句对上述三张表的数据进行插入.更新和

  • Rust 连接 PostgreSQL 数据库的详细过程

    pgxr 是一个 Rust 的 crate 库,可以实现用 Rust 语言来编写 PostgreSQL 的扩展函数(相当于存储过程). 这次,我们使用 postgres 这个 crate 来连接和操作 PostgreSQL 数据库. 创建好项目后,在 cargo.toml 里添加 postgres 的依赖: 首先,导入相关的类型,并创建一个 Person struct: 再创建 create_db 函数,用来创建数据库和表,它返回一个 Result,里面可能是 Client 或错误: 注意,Cl

  • Linux下创建Postgresql数据库的方法步骤

    前言 PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行.因为之前用默认的配置创建pgsql数据库,导致root的占用率达到97%: 所以决定重新创建一次数据库,很多坑又忘了.为了避免以后再忘记,所以决定记录下面,分享出来供大家参考学习,下面来一起看看详细的介绍吧. 创建步骤如下: 创建一个放Data的文件夹,/majestic12/pgsql/data PGDATA = /majestic12/pgsql/

  • 浅析postgresql 数据库 TimescaleDB 修改分区时间范围

    今天遇到一个问题 之前用TimescaleDB创建的超表 是已7天为单位的 由于7天的数据量过大 影响查询效率 需要把7天的分区改为一天一分区 创建超表 create_hypertable() 1.创建普通版表 CREATE TABLE "超表名" ( "collect_time" timestamp(6) NOT NULL, "code" varchar(36) COLLATE "pg_catalog"."defa

  • MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)

    前言: 有时候,一个数据库有多个帐号,包括数据库管理员,开发人员,运维支撑人员等,可能有很多帐号都有比较大的权限,例如DDL操作权限(创建,修改,删除存储过程,创建,修改,删除表等),账户多了,管理起来就会相当麻烦,容易产生混乱,如果数据库管理员不监控数据库架构变更的话,就不知道谁对数据库架构做了啥改动(此处改动仅仅只DDL操作),尤其有时候,有些开发人员可能不按规章制度办事,绕过或忘了通知发布人员或DBA,直接去生产机做一些DDL操作,那么我们就需要对数据库架构某些更改的事件进行监控,如果能够

  • Laravel5.5 数据库迁移:创建表与修改表示例

    数据库迁移是数据库的版本管理,要使用数据库迁移,需要在.env文件中连接好数据库(不多说).laravel本身已经存在user表和password_resets表的迁移了,因此,执行 php artisan migrate 便会在数据库中创建好user表.password_resets表和migrations表.migrations表是版本记录表. 命令执行的其实是 database\migration 下的迁移文件.迁移文件中调用的方法会替我们执行数据库操作(建表).每个文件的命名对应迁移创建

  • Windows下Postgresql数据库的下载与配置方法

    注意下载的是二进制版,不是带Windows Installer的. http://www.enterprisedb.com/products-services-training/pgbindownload x86下载http://get.enterprisedb.com/postgresql/postgresql-9.2.4-1-windows-binaries.zip x64下载http://get.enterprisedb.com/postgresql/postgresql-9.2.4-1-

  • 15个postgresql数据库实用命令分享

    最初是想找postgresql数据库占用空间命令发现的这篇blog,发现其中提供的几 条命令很有用(但也有几条感觉是充数的=.=),于是就把它翻译过来了.另外这篇文章是09年的,所以里面的内容可能有点过时,我收集了原文中有用的评论放在了最后面. 现在有不少开源软件都在使用postgreSQL作为它们的数据库系统.但公司可能不会招一些全职的postgreSQL DBA来维护它(piglei: 在国内基本也找不到).而会让一些比如说Oracle DBA.Linux系统管理员或者程序员去 维护.在这篇

随机推荐