zoukankan      html  css  js  c++  java
  • PostgreSQL之Sequence序列(转)

    本文转载自:https://blog.csdn.net/omelon1/article/details/78798961

    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);返回当前的序列号,该序列号只要没有被使用,就不会变化,如果当前请求一直使用,那么不会再分配给其他的请求,因为该序列号已经分配给当前请求。

  • 相关阅读:
    Memcached:高性能的分布式内存缓存服务器
    MySQL数据库Query的优化
    MySQL数据库的锁定机制及优化
    系统架构及实现对性能的影响(一)
    Mysql数据库的基本结构和存储引擎简介
    Spring事务管理的回滚
    穷举算法实例
    在写完全二叉树的构建及遍历
    Inotify
    Rsync扩展
  • 原文地址:https://www.cnblogs.com/zhenghengbin/p/9894078.html
Copyright © 2011-2022 走看看