• 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;
  • 相关阅读:
    hdu 5115 区间dp ***
    CF 149D Coloring Brackets 区间dp ****
    区间dp总结
    hdu 5284 BestCoder Round #48 ($) 1001 水题 *
    vijos 1038 括号+路径 ***
    vijos 1037 ***
    vijos 1028 LIS *
    使用alpine 构建 golang 运行容器
    Go Http包解析:为什么需要response.Body.Close()
    如果open的file不close , 会有什么样的影响
  • 原文地址:https://www.cnblogs.com/MOBIN/p/5233948.html
Copyright © 2020-2023  润新知