• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PostgreSQL Sequence序列的使用详解

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

    一、 Sequence序列

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

    1、Sequence的创建

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

    SQL语句如下:

     CREATE SEQUENCE seq_commodity
     INCREMENT 1
     MINVALUE 1
     MAXVALUE 9223372036854775807
     START 1
     CACHE 1 
     CYCLE; // 循环,表示到最大值后从头开始

    2、查找Sequence中的值

    SELECT nextval('seq_commodity');

    这里nextval表示下一个值

    3、修改 Sequence

    用alter sequence来修改,除了start以外的所有sequence参数都可以被修改,

    alter sequence 的例子 (SQL语句)

    ALTER SEQUENCE seq_commodity 
     INCREMENT 10 
     MAXVALUE 10000 
     CYCLE 
     NOCACHE ; 

    当然如果想要修改start的值,可以先用 drop sequence删掉,然后再重新创建。

    4、删除Drop Sequence

    DROP SEQUENCE seq_commodity;

    5、Sequence分配策略

    调用select nextval(seq_ commodity);返回下一个序列号后,系统优先给用户分配一个序号,接着系统的次Sequence立刻加上设置的步长(increment 1),不论此序号用户是否使用;

    调用select currval(seq_ commodity);返回当前的序列号,该序列号只要没有被使用,就不会变化,如果当前请求一直使用,那么不会再分配给其他的请求,因为该序列号已经分配给当前请求。

    补充:PostgreSQL 获取 SEQUENCE 列表

    我就废话不多说了,大家还是直接看代码吧~

    SELECT "c"."relname" FROM "pg_class" "c" WHERE "c"."relkind" = 'S';

    结束~

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

    您可能感兴趣的文章:
    • postgresql 中的序列nextval详解
    • PostgreSQL 序列绑定字段与不绑定字段的区别说明
    • PostgreSQL 序列增删改案例
    • postgresql重置序列起始值的操作
    • postgresql 实现更新序列的起始值
    • postgresql修改自增序列操作
    • Postgresql数据库之创建和修改序列的操作
    上一篇:PostgreSQL之INDEX 索引详解
    下一篇:postgresql 索引之 hash的使用详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PostgreSQL Sequence序列的使用详解 PostgreSQL,Sequence,序列,的,