原文地址: PostgreSQL之Sequence序列_Frank_lyn的博客-CSDN博客_pgsql sequence

PostgreSQL是一种关系型数据库,和Oracle、MySQL一样被广泛使用。平时工作主要使用的是PostgreSQL,所以有必要对其相关知识做一下总结和掌握,先总结下序列。

一、 Sequence序列

Sequence是一种自动增加的数字序列,一般作为行或者表的唯一标识,用作代理主键。

1、创建Sequence

例子:创建一个seq_commodity,最小值为1,最大值为9223372036854775807,从1开始,增量的步长为1,缓存为1的循环排序Sequence。

SQL语句如下:

--说明
CREATE SEQUENCE IF NOT EXISTS "test_c_id_seq" INCREMENT 1   // 每次递增1MINVALUE  0   // 最小值0, 无最小值: NO MINVALUEMAXVALUE 1000000000000000  // 最大值, 无最大值: NO MAXVALUESTART 0    // 从0开始CACHE 1    // 设置缓存中序列的个数,建议设置CYCLE;    // 循环,表示到最大值后从头开始--示例
CREATE SEQUENCE test_c_id_seqSTART WITH 1   //从1开始INCREMENT BY 1   //每次递增1NO MINVALUE      //无最小值NO MAXVALUE      //无最大值CACHE 1;         //设置缓存中序列的个数,建议设置-- use
CREATE SEQUENCE IF NOT EXISTS "tag_record_seq" INCREMENT 1MINVALUE  0MAXVALUE 1000000000000000START 0CACHE 1;

2、查找Sequence中的值

-- 返回下一个序列号
select nextval(seq_ commodity);-- 返回当前的序列号
select currval(seq_ commodity);

3、设置起始序列值

-- 设置序列值从0开始
SELECT setval('"test_c_id_seq"', 0, true);-- 设置自增长字段从当前数据库自增长字段中最大的开始
select setval('要修改的序列名称', (select max(id)  from your_table));
select setval('test_c_id_seq', (select max(id)  from test_table));

4、修改 Sequence

用alter sequence来修改,除了start以外的所有sequence参数都可以被修改。
       alter sequence 的例子 (SQL语句)

ALTER SEQUENCE test_c_id_seqINCREMENT 10 MAXVALUE 10000 CYCLE NOCACHE;

5、删除Drop Sequence

DROP SEQUENCE test_c_id_seq;-- example2
DROP SEQUENCE IF EXISTS test_c_id_seq CASCADE

6、Sequence分配策略

  • 调用select nextval(seq_ commodity);返回下一个序列号后,系统优先给用户分配一个序号,接着系统的次Sequence立刻加上设置的步长(increment 1),不论此序号用户是否使用;
  • 调用select currval(seq_ commodity);返回当前的序列号, 该序列号只要没有被使用,就不会变化,如果当前请求一直使用,那么不会再分配给其他的请求,因为该序列号已经分配给当前请求。

7、绑定序列号到数据库字段

alter table test_c alter column id set default nextval('test_c_id_seq');

PostgreSQL之Sequence序列相关推荐

  1. PostgreSQL之Sequence序列(转)

    本文转载自:https://blog.csdn.net/omelon1/article/details/78798961 Sequence序列 Sequence是一种自动增加的数字序列,一般作为行或者 ...

  2. oracle数据库创建Sequence序列

    oracle创建sequence序列 -- Create sequence create sequence seq_wds  --序列名称(自定义) minvalue 1   --序列最小值 maxv ...

  3. sequence 序列

    sequence(序列)是一组有顺序的元素的集合,可以包含一个或多个元素,也可以没有任何元素(空序列).序列的元素可以是基本数据类型(int,float,complex,bool,string),也可 ...

  4. 怎样给oracle表设置序列,Oracle的sequence序列在hibernate中的配置方法

    Oracle自增序列在Hibernate中的配置方法 在很多情况下,我们使用Hibernate在已经建立好数据库的基础上.在oracle中,如果已经建立好的数据库中使用了sequence,则可以按照下 ...

  5. Oracle中Sequence序列的使用

    在oracle中sequence就是序列,每次取的时候它会自动增加.Sequence与表没有关系.  1.Create Sequence 首先要有CREATE SEQUENCE或者CREATE ANY ...

  6. PostgreSQL 中 sequence 的用法

    介绍 sequence 是 pg 自带的高效的自增id工具(也叫序列).sequence 使用了轻量级锁的方式来做到高效自增id的,所以会比 UPDATE 行锁快.sequence 的返回数据类型默认 ...

  7. GeoGebra笔记10 :Sequence序列

    Sequence(表达式,变量,初值,终值,增量) Sequence(n^2,n,1.10,0.2) stroke1用笔划线 Sequence(Rotate(stroke1,(n 30)"a ...

  8. oracle创建SEQUENCE序列

    1.在sql窗口如下写 create sequence SEQ_USER_INFO_ID//你创建的序列的名称 increment by 1 //每次自增长1 start with 1 //默认id从 ...

  9. Sequence序列的理解和使用

    目录 1.是什么? 2.做什么? 3.不使用的影响? 4.使用的好处? 5.如何使用? 1.是什么? sequence是用来在多用户环境下产生唯一整数的数据库对象. 2.做什么? 序列产生器顺序生成数 ...

最新文章

  1. C语言定义code报错,C语言报错整理大全
  2. SBO_SP_TransactionNotification 存储过程的应用
  3. libdgl.dll WinError 126
  4. 会声会影x7 每次安装均会提示:已安装这个产品的另一个版本
  5. oracle 904 maxsize,EXP-00008: 遇到 ORACLE 错误 904 ORA-01003
  6. python 虚拟环境创建
  7. poj 2385Apple Catching(简单dp)
  8. EXE.DLL文件图标导出器[免费下载]
  9. 搜索——滑雪(poj1088)
  10. 数据:以太坊2.0合约余额新增9856 ETH
  11. python 列表比较不同物质的吸热能力_文章
  12. IOS改地区:美国、新西兰等等
  13. matlab的grid on,Matlab基本函数-grid、box函数 | 学步园
  14. python科学计算的例子_Python科学计算:NumPy
  15. 老男孩Day1作业(二):三级菜单
  16. 基于Kinect 2.0深度图像的快速体积测量
  17. 焦作网络赛K. Transport Ship
  18. 缔造企鹅:产品经理是这样炼成的札记-技巧
  19. 机器学习: 贝叶斯算法的应用
  20. 移动端软件测试面试题及答案-2021年最新版

热门文章

  1. ubuntu下chrome浏览器字体颜色修改
  2. php socket连接
  3. php socket发送十六进制指令
  4. 北京网通dns地址服务器大全 - 产品/方案 net.ChinaUnix.net
  5. 励志短语,懂得生存,学会竞争
  6. spring-security验证登录https变成http导致登录跳转失败
  7. AVC1与H264的差别
  8. 支付开发(六)----支付宝支付的几种方式
  9. 训练数据太少?过拟合?一文带你领略“数据增长魔法”(上)
  10. 夜光带你走进我擅长的领域:SpringBOOT(10)