1. 创建序列

语法:

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_name.column_name | NONE } ]

参数说明:

TEMPORARY 或 TEMP
如果声明了这个修饰词,那么该序列对象只为这个会话创建, 并且在会话结束的时候自动删除。在临时序列存在的时候, 除非用模式修饰的名字引用,否则同名永久序列是不可见的(在同一会话里)。name
将要创建的序列名(可以用模式修饰)increment
可选子句INCREMENT BY increment指定序列的步长。 一个正数将生成一个递增的序列,一个负数将生成一个递减的序列。缺省值是 1 。minvalue
NO MINVALUE
可选的子句MINVALUE minvalue 指定序列的最小值。如果没有声明这个子句或者声明了NO MINVALUE, 那么递增序列的缺省为 1 ,递减序列的缺省为-263-1。maxvalue
NO MAXVALUE
可选的子句MAXVALUE maxvalue 指定序列的最大值。如果没有声明这个子句或者声明了NO MAXVALUE, 那么递增序列的缺省为263-1,递减序列的缺省为 -1 。start
可选的子句START WITH start 指定序列的起点。缺省初始值对于递增序列为minvalue, 对于递减序列为maxvalue。cache
可选的子句CACHE cache 为快速访问而在内存里预先存储多少个序列号。最小值(也是缺省值)是 1 , 表示一次只能生成一个值,也就是说没有缓存。CYCLE
NO CYCLE
CYCLE选项可用于使序列到达 maxvalue或 minvalue时可循环并继续下去。 也就是如果达到极限,生成的下一个数据将分别是 minvalue 或maxvalue。
如果声明了NO CYCLE,那么在序列达到其最大值之后任何对 nextval的调用都将返回一个错误。 如果既没有声明CYCLE也没有声明NO CYCLE, 那么NO CYCLE是缺省。OWNED BY table_name.column_name
OWNED BY NONE
OWNED BY选项将序列关联到一个特定的表字段上。这样, 在删除那个字段或其所在表的时候将自动删除绑定的序列。 指定的表和序列必须被同一个用户所拥有,并且在在同一个模式中。 默认的OWNED BY NONE表示不存在这样的关联。

实例:

create sequence serial
increment by 2
minvalue 1
no maxvalue
start with 1;select nextval('serial');

2. 修改序列

语法:

ALTER SEQUENCE [ IF EXISTS ] name [ INCREMENT [ BY ] increment ][ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ][ START [ WITH ] start ][ RESTART [ [ WITH ] restart ] ][ CACHE cache ] [ [ NO ] CYCLE ][ OWNED BY { table_name.column_name | NONE } ]
ALTER SEQUENCE [ IF EXISTS ] name OWNER TO new_owner
ALTER SEQUENCE [ IF EXISTS ] name RENAME TO new_name
ALTER SEQUENCE [ IF EXISTS ] name SET SCHEMA new_schema

参数说明:

name
一个要修改的序列的名字(可以有模式修饰)。IF EXISTS
当序列不存在时使用该选项不会出现错误消息,仅有一个通知。increment
INCREMENT BY increment选项是可选的。 一个正数会让序列成为递增序列,负数则成为递减序列。如果没有声明,将沿用原来的递增值。minvalue
NO MINVALUE
MINVALUE minvalue是一个可选选项,它决定一个序列可以生成的最小的值。 如果声明了NO MINVALUE,那么将使用缺省值,对于递增和递减的序列分别是1和-263-1。 如果没有声明则沿用当前的最小值。maxvalue
NO MAXVALUE
MAXVALUE maxvalue是一个可选选项,它决定一个序列可以生成的最大的值。 如果声明了NO MAXVALUE那么将使用缺省值,对于递增和递减的序列分别是263-1和-1。 如果没有声明则沿用当前的最大值。start
START WITH start是一个可选选项,它修改序列的起始值。 这对序列当前值没有影响;它仅设置将来的ALTER SEQUENCE RESTART命令将会使用的值。restart
RESTART [ WITH restart ]是一个可选选项,它改变序列的当前值。 这相当于用is_called = false参数调用setval 函数 :指定的值将会通过nextval的next调用返回。 不使用restart参数值来使用RESTART选项相当于使用CREATE SEQUENCE或由ALTER SEQUENCE START WITH设置的初始值。cache
CACHE cache选项打开序列号预分配功能以及为了快速存取而在内存中存储的功能。 最小值是1(表示每次只能生成一个数值,没有缓冲)。如果没有声明,将沿用旧的缓冲值。CYCLE
可选的 CYCLE选项用于设置升序序列或是降序序列在达到maxvalue或者minvalue的时候循环使用。 如果达到了极限, 那么生成的下一个数字将分别是minvalue或者maxvalue。NO CYCLE
如果声明了可选的NO CYCLE选项,任何在序列达到其极限后对nextval的调用都将返回错误。 如果未声明CYCLE或者NO CYCLE,那么将沿用原有的循环行为。OWNED BY table_name.column_name
OWNED BY NONE
OWNED BY选项将序列和一个表的特定字段关联, 这样,如果那个字段(或整个表)被删除了,那么序列也将被自动删除。 如果序列已经与表有关联后,使用这个选项后新关联将覆盖旧有的关联。 指定的表必须与序列的所有者相同并且在同一个模式中。 使用OWNED BY NONE将删除任何已经存在的关联,也就是让该序列变成"独立"序列。new_owner
序列新所有者的用户名。new_name
序列的新名称。new_schema
序列的新模式。

实例:

修改serial序列的起始值和步长。

alter sequence serial
increment by 3
restart with 10;select nextval('serial');

3. 删除序列

语法:

DROP SEQUENCE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

参数说明:

IF EXISTS
如果指定的序列不存在,那么发出一个 notice 而不是抛出一个错误。name
序列名(可以有模式修饰)。CASCADE
级联删除依赖序列的对象。RESTRICT
如果存在任何依赖的对象,则拒绝删除序列。这个是缺省。

实例:

drop sequence serial;

【PostgreSQL-9.6.8】序列相关推荐

  1. Postgresql 获取最新的序列值,并组装成更新序列值的语句

    drop table init_sequence_table;create table init_sequence_table(sequence_name varchar(300) null,seq_ ...

  2. PostgreSQL调研

    2019独角兽企业重金招聘Python工程师标准>>> 1. 什么是PostgreSQL PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS). 支持复杂查 ...

  3. MySQL 到PostgreSQL 的数据迁移工具

    2019独角兽企业重金招聘Python工程师标准>>> pg_chameleon is available on pypi for download python 包下载地址 The ...

  4. postgres的序列(Sequence)的使用

    介绍 序列对象(也叫序列生成器)就是用CREATE SEQUENCE 创建的特殊的单行表.一个序列对象通常用于为行或者表生成唯一的标识符. 二.创建序列 方法一:直接在表中指定字段类型为serial ...

  5. PostgreSQL使用PgAdmin导入数据

    1.创建列 要设置主键: postgresql常用函数>序列函数nextval():设置主键自动增长_野生汪嘤嘤嘤的博客-CSDN博客_nextval() 2.导入数据 3.其他方式参考 Pos ...

  6. undefined control sequence_PostgreSQL----Sequence序列的那些事

    PostgreSQL是关系型数据库的一种,和Oracle.MySQL一样被广泛使用.工作中有用到过PostgreSQL,这里对序列的知识点做下总结. Sequence是一种自动增加的数字序列,一般作为 ...

  7. PostgreSQL SERIAL创建自增列

    PostgreSQL SERIAL创建自增列 本文我们介绍PostgreSQL SERIAL,并展示如何使用serial类型创建表自增列. PostgreSQL SERIAL伪类型 PostgreSQ ...

  8. mysql技术大会2020_2020年数据库技术大会助力技术提升

    下半年的技术大会比较多,作为数据库技术从业人员,自然比较关注数据库技术大会,有幸参加过几次数据技术嘉年华,每次参会能遇到很多数据库领域的知名专家,认真聆听技术大咖的主题分享总能获得很多数据库发展动态和 ...

  9. akka actor java_现代化的Java(三)——从Hello Akka说起

    接下来打算花一些篇幅介绍一些异步编程的范式,也算是给自己一个学习笔记吧. 异步编程是个很诡异的领域,每个人都在谈论它,但是工作中很少有人能驾驭:很多很新潮很热的异步编程概念,运用起来却完全达不到它宣称 ...

  10. 4.1.2. Constants

    4.1.2. Constants 4.1.2. 常量 There are three kinds of implicitly-typed constants in PostgreSQL: string ...

最新文章

  1. 用 Pytorch 理解卷积网络
  2. 这些堪称人类史上“最强大脑”的人中,霍金居然排最后
  3. 【机器学习】最近邻算法KNN原理、流程框图、代码实现及优缺点
  4. sql 获取本周周一和周日
  5. 找出一个数组中出现次数最多的那个元素
  6. OPENCV学习笔记2-5_扫描图像并访问相邻像素
  7. IP地址的简单说明---Linux学习笔记
  8. cup过高是什么意思_做青和焙火有什么关系?
  9. 现代软件工程 团队作业 - 软件分析和用户需求调查 (2013 - 2014)
  10. POJ1164 The Castle【DFS】
  11. 鸿蒙系统的结构图,一图看懂鸿蒙系统中的JS开发框架!
  12. Hex2Bin使用方法
  13. 手机音频拼接软件_介绍三款无损分割视频软件
  14. Maven 本地仓库更新策略
  15. 计算机应用技术信息管理方向,计算机应用技术专业(信息管理方向).docx
  16. UE4自定义资源和编辑器(一):创建自定义资源
  17. 记一次奇怪的truecrypt解密,隐藏分区的MasterKey
  18. 服务器终端配置,如何配置终端/通讯服务器
  19. 山东大学2019上半学期增强现实课程重点整理
  20. Android常用存储类型与简介

热门文章

  1. 设计模式之十一:创建模式(Builder Pattern)
  2. 32驱动_轻松掌握pinctrl子系统驱动开发——一个虚拟pinctrl dev驱动开发
  3. antdPro Nginx 打包部署
  4. 一片关于Bootstarp4的文章
  5. vs2008与oracle数据库连接
  6. 二值化区分前景和背景
  7. 2008年全国计算机等级考试须知及参考资料
  8. java虚拟机(八)--java性能监控与故障处理工具
  9. 多个ajax执行混乱问题
  10. SOAP1.1 VS SOAP1.2