Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Phoenix中Sequence的用法_

Phoenix中Sequence的用法_

作者头像
Dlimeng
发布于 2023-06-29 03:15:24
发布于 2023-06-29 03:15:24
2040
举报
文章被收录于专栏:开源心路开源心路

Phoenix--HBase的JDBC驱动

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

使用CREATE SEQUENCE语句建立序列的语法如下:

create sequence

[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;

参考:http://www.cnblogs.com/MOBIN/p/5233948.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Oracle 序列学习与使用总结
序列是oracle提供的用于生成一系列数字的数据库对象,序列会自动生成顺序递增的序列号,可用于提供唯一的自动递增主键。序列和视图一样,并不占用实际的存储空间,只是在数据字典中保存他的定义信息。
授客
2022/09/23
6780
【DB笔试面试513】在Oracle中,如何定义序列?其作用是什么?有关序列需要注意些什么?
在很多数据库系统中,都存在一个自动增长的列,如果想要在Oracle中实现自动增长的功能,那么只能依靠序列完成。序列通常具有如下的特性:
AiDBA宝典
2019/09/29
8360
oracle sequence order_二次序列
select scott.seq_name.currval 当前序列值 from dual; select * from scott.stu_info;
全栈程序员站长
2022/11/02
4250
oracle sequence order_二次序列
Apache Phoenix系列 | 真 · 从入门到精通
文章简介:Phoenix是一个开源的HBASE SQL层。它不仅可以使用标准的JDBC API替代HBASE client API创建表,插入和查询HBASE,也支持二级索引、事物以及多种SQL层优化。
王知无-import_bigdata
2019/09/03
6.1K0
Apache Phoenix系列 | 真 · 从入门到精通
SQL基础--> 序列(SEQUENCE)、同义词(SYNONYM)
--=============================================
Leshami
2018/08/07
1.5K0
关于sequence问题的紧急处理(r2第26天)
今天早上收到邮件,说有一个很紧急的问题,是关于sequence的。 错误日志里面还有ORA的错误 ----- ... 7 more Caused by: java.sql.SQLException: ORA-08004: sequence TRX_1SQ.NEXTVAL exceeds MAXVALUE and cannot be instantiated 猛一看就是sequence的值越界了。 导致这个问题的原因主要有两个: 1)设置的maxvalue值过小了。 2)sequence
jeanron100
2018/03/14
9530
sequence的MAXVALUE、NOMAXVALUE和CYCLE、NOCYCLE参数
Oracle的sequence通常可以用来作自增列,例如主键,因为他可以自动累加并且唯一。创建sequence时有几个参数,MAXVALUE、MINVALUE、CYCLE、NOCYCLE、NOMAXVALUE等,这几个参数我们日常使用的时候可能不会太在意,但有些细节问题碰到的时候就需要明确下。
bisal
2019/01/29
1K0
oracle修改sequence最大最小值_oracle取最大值的记录
序列是oracle提供的用于生成一系列唯一数字的数据库对象,序列会自动生成顺序递增的序列号,以实现自动提供唯一的主键值,系列可以在多个用户并发环境中使用,并且可以为所有用户生成不重复的顺序数字,而不需要任何额外的I/O开销。
全栈程序员站长
2022/11/02
2.7K0
oracle使用sequence批量写数据
本博客是对之前写的博客Oracle批量新增更新数据的补充,oracle的知识真是多,其实要学精任何一门知识都是要花大量时间的,正所谓:
SmileNicky
2019/07/11
8490
Oracle Sequence创建与使用[通俗易懂]
原文地址:https://blog.csdn.net/Karloo/article/details/51423340(记录学习)
全栈程序员站长
2022/11/02
4570
Oracle Sequence序列的介绍与使用
前面因为项目数据导数据,我们介绍过《Oracle通过ODBC连接SQL Server数据库》,在实际导入过程中新的数据表结构里面存在不少ID的列,所以就用到了Oracle的序列,这一章我们就来介绍一下Oracle的序列(Oracle Sequence)。
Vaccae
2019/07/25
1.8K0
关于导入导出sequence(r4笔记第11天)
sequence在平时的工作中是一个默默无闻的角色。可能创建好之后很少会去修改它,它就在默默地自增长。直到一些特殊的原因导致sequence出现问题,比如提供了一个脚本,需要使用insert语句修复一些问题, 修复的语句类似insert into test values(100,xxxxxx,xxxx); 正确的写法应该是insert into test values(test_seq.nextval,xxxxxx,xxxx); 但是测试的时候也没有发现问题,就这样部署到生产中就出现问题了。这个时候就是比较
jeanron100
2018/03/15
1.3K0
通用的序列号生成器库
正如文章《通用的业务编号规则设计实现(附源码)》 文章里需要一个多实例和线程安全的序列化生成器,在SQL Server 2012+ 版本 有一个通过.NET程序集的序列号transact-sql 函数 http://msdn.microsoft.com/zh-cn/library/ff878091.aspx。 这篇文章向大家介绍一个使用SQL Server 和Sql Azure 以及Mongodb 实现的序列号生成器。 在Github上有个项目 https://github.com/getAddress/S
张善友
2018/01/19
1.1K0
通用的序列号生成器库
关于 Oracle 的自增序列
因为Oracle中的自增序列与MySQL数据库是不一样的,所以在这里记录一下Oracle的自增序列。
星哥玩云
2022/08/18
1.1K0
Oracle数据中的序列、索引、视图、事务操作详解以及rowid 和 rownum的简单介绍
例如: 分页查询员工信息, 按工资降序排序. 用 page 表示当前页数, size 表示每页显示的记录数, 则分页查询语句为:
时间静止不是简史
2020/07/24
1.3K0
Oracle数据中的序列、索引、视图、事务操作详解以及rowid 和 rownum的简单介绍
oracle sequence用法_oracle赋值
increment by: 指定序列增长步长,可以为正(升序)、负整数(降序),但不能为0。
全栈程序员站长
2022/11/02
7070
技术分享 | 从 MySQL 到 OBOracle:如何处理自增列?
爱可生 DBA 团队成员,一位会摄影、会铲屎、会打球、会骑车、生活可以自理的 DBA
爱可生开源社区
2023/08/18
4390
技术分享 | 从 MySQL 到 OBOracle:如何处理自增列?
你知道Oracle的Sequence序列吗?
sequence作为Oracle一个非常普通的对象,在实际设计和开发的过程中,还是有些知识,以及细节,值得总结和注意,下面我会从四个方面,展开介绍,
CSDN技术头条
2019/11/19
9940
你知道Oracle的Sequence序列吗?
Oracle数据库,浅谈Oracle序列
Oracle是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一,而序列是一个计数器,它并不会与特定的表关联,通过创建Oracle序列和触发器实现表的主键自增。序列一般是用来填充主键和计数的,不占用磁盘空间,占用内存。本期我们重点来讲述一下Oracle序列。
用户1289394
2021/05/08
1.9K0
Oracle数据库,浅谈Oracle序列
Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现。SQL Server timestamp 数据类型与时间和日期无关。SQL Server timestamp 是二进制数字,它表明数据库中数据修改发生的相对顺序。实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@
张善友
2018/01/30
1.8K0
相关推荐
Oracle 序列学习与使用总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档