zoukankan      html  css  js  c++  java
  • Phoenix中Sequence的用法

    Phoenix--HBase的JDBC驱动

    序列(Sequence)是Phoenix提供的允许产生单调递增数字的一个SQL特性,序列会自动生成顺序递增的序列号,以实现自动提供唯一的主键值。

     
    使用CREATE SEQUENCE语句建立序列的语法如下:
    create sequence <deq_name>
    [start with n]
    [increment by n]
    [minvalue n]
    [maxvalue n]
    [cycle]
    [cache n]
     

    语法结构:

    参数说明:
    sqe_name:序列名
     
    increment:可选子句,表示序列的增量,正数表示生成一个递增的序列,负数表示生成一个递减的序列,其默认值是1.
     
    minvalue:可选子句,决定序列生成的最小值
     
    maxvalue:可选子句,决定序列生成的最大值
     
    start:可选子句,指定序列的开始位置,默认递增序列的起始值为minvalue,递减序列的起始值为maxvalue.
     
    cache:可选子句,决定是否产生序列号预分配并存储在内存中。
     
    cycle:可选关键字,当序列达到最大值或者最小值时,可以继续复位下去;如果是递增系列达到maxvalue,它将又从minvalue继续递增,如果是递减系列达到minvalue,它将从maxvalue继续递减。如果忽略该关键,当其他达到最大值或者最小时仍继续递增/减时将会返回一个错误。
     
    例子:
    创建默认序列,其增量为1
    CREATE SEQUENCE my_sequence;

    创建一个最小值为1,最大值为10并且能复位的序列

    CREATE SEQUENCE my_cycling_sequence MINVALUE 1 MAXVALUE 100 CYCLE;

    查询当前序列号

    SELECT CURRENT FOR my_sequence;

    查询当前序列的下一个序列号

    SELECT NEXT VALUE FOR my_sequence;

    (NEXT VALUE FOR返回当前序列的下一个序列号,CURENT VALUE FOR返回当前序列号,注意:首次引用序列时,必须是NEXT VALUE FOR

    使用UPSERT SELECT语句,并为主键生成一个唯一的序列值

    UPSERT VALUES INTO my_table(id, col1, col2)  VALUES( NEXT VALUE FOR my_schema.my_sequence, 'foo', 'bar');

    通过CURRENT VALUE FOR查询某表中某序列为该表分配的最后一个序列号

    SELECT CURRENT VALUE FOR my_sequence FROM my_tale;
  • 相关阅读:
    POJ 2411 Mondriaan's Dream
    POJ 2505 A multiplication game
    HDOJ(HDU) 3949 XOR
    雅礼集训DAY 6 T1 xmasdag
    bzoj 2159: Crash 的文明世界
    如何查看Ubuntu版本
    Ubuntu如何安装谷歌Chrome浏览器
    使用nano编辑器进行查找和替换
    Ubuntu修改用户和root密码
    Anaconda/Conda创建环境时报错的解决方案
  • 原文地址:https://www.cnblogs.com/MOBIN/p/5233948.html
Copyright © 2011-2022 走看看