- 浏览: 395611 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (760)
- 股票日志 (26)
- Selenium (0)
- selenium 2 环境的搭建 (1)
- 并发 (7)
- 框架开发 (1)
- 动态代理 (2)
- Struts2 (2)
- POI (2)
- jdk (3)
- maven (31)
- spring (35)
- mysql (31)
- 工作机会 (3)
- xtream (1)
- oracle dbms_metadata GET_DDL (0)
- SSI (1)
- DB (61)
- powermock (4)
- java 基础 (25)
- 多线程 (11)
- 高手 (2)
- java 底层 (2)
- 专业网站 (1)
- 开发联想 (1)
- 开发联想 (1)
- bat文件 (2)
- 清queue 语句 (1)
- 清queue 语句 (1)
- jquery (7)
- html5 (1)
- Jenkins (10)
- Linux (17)
- 工作issue (2)
- tomcat log (3)
- jvm (23)
- 项目细节 (0)
- oracle (41)
- 泛型 (3)
- 新知识点 (1)
- 数据库ddl 语句 (0)
- AQ (2)
- jms (0)
- 网络资源 (6)
- github (6)
- Easymock (1)
- Dom 解析XML (1)
- windows命令 (2)
- java (7)
- 正则表达式 (5)
- sequence (1)
- oracle 表meta信息 (1)
- 小工具技巧 (1)
- 辅助工具 (1)
- Junit (1)
- 泛型 generic (2)
- Java程序设计 (1)
- cglib (2)
- 架构师之路 (1)
- 数据库连接池 (5)
- c3p0 (1)
- eclipse使用 (1)
- oracle sql plus (1)
- 码农人生 (3)
- SVN (15)
- sqlplus (2)
- jsoup (1)
- 网络爬虫 (2)
- 新技能 (1)
- zookeeper (4)
- hadoop (1)
- SVNKIT (1)
- 从工具到知识点的整理 (1)
- log4j (13)
- 读文件 (0)
- 转义字符 (1)
- command (1)
- web service (3)
- 锁 (1)
- shell 脚本 (1)
- 遇到的错误 (2)
- tomcat (14)
- 房产 (5)
- bootstrap jquery ui (1)
- easyui (2)
- 个人征信 (1)
- 读写分离 (1)
- 备份 (1)
- rmi (6)
- webservice (1)
- JMX (4)
- 内存管理 (3)
- java设计 (1)
- timer (1)
- lock (2)
- concurrent (2)
- collection (1)
- tns (1)
- java基础 (15)
- File (1)
- 本机资源 (1)
- bat (1)
- windows (4)
- 数据结构 (3)
- 代码安全 (1)
- 作用域 (1)
- 图 (2)
- jvm内存结构 (1)
- 计算机思想 (1)
- quartz (6)
- Mongo DB (2)
- Nosql (4)
- sql (5)
- 第三方Java 工具 jar 项目 (2)
- drools (1)
- java swing (2)
- 调用console (1)
- runtime (1)
- process (1)
- swing (2)
- grouplayout (1)
- dubbo (0)
- bootstrap (0)
- nodejs (2)
- SVN hooks (1)
- jdbc (3)
- jdbc error (1)
- precedure (1)
- partition_key (1)
- active mq (1)
- blob (2)
- Eclipse (6)
- web server (1)
- bootstrapt (2)
- struts (1)
- ajax (1)
- js call back (1)
- 思想境界拓展 (1)
- JIRA (1)
- log (1)
- jaxb (3)
- xml java互相转换 (1)
- 装修 (2)
- 互联网 (2)
- threadlocal (3)
- mybatis (22)
- xstream (1)
- 排序 (1)
- 股票资源 (1)
- RPC (2)
- NIO (3)
- http client (6)
- 他人博客 (1)
- 代理服务器 (1)
- 网络 (2)
- web (1)
- 股票 (5)
- deadlock (1)
- JConsole (2)
- activemq (3)
- oralce (1)
- 游标 (1)
- 12月13日道富内部培训 (0)
- grant (1)
- 速查 (2)
- classloader (4)
- netty (4)
- 设计模式 (2)
- 缓存 (2)
- ehcache (2)
- framework (1)
- 内存分析 (2)
- dump (1)
- memory (2)
- 多高线程,并发 (1)
- hbase (2)
- 分布式系统 (1)
- socket (3)
- socket (1)
- 面试问题 (1)
- jetty (2)
- http (2)
- 源码 (1)
- 日志 (2)
- jni (1)
- 编码约定 (1)
- memorycache (1)
- redis (13)
- 杂谈 (1)
- drool (1)
- blockingqueue (1)
- ScheduledExecutorService (1)
- 网页爬虫 (1)
- httpclient (4)
- httpparser (1)
- map (1)
- 单例 (1)
- synchronized (2)
- thread (1)
- job (1)
- hashcode (1)
- copyonwriteArrayList (2)
- 录制声音 (1)
- java 标准 (2)
- SSL/TLS (1)
- itext (1)
- pdf (1)
- 钻石 (2)
- sonar (1)
- unicode (1)
- 编码 (4)
- html (1)
- SecurityManager (1)
- 坑 (1)
- Restful (2)
- svn hook (1)
- concurrentHashMap (1)
- 垃圾回收 (1)
- vbs (8)
- visual svn (2)
- power shell (1)
- wmi (3)
- mof (2)
- c# (1)
- concurrency (1)
- 劳动法 (1)
- 三国志游戏 (2)
- 三国 (1)
- 洪榕 (2)
- 金融投资知识 (1)
- motan (1)
- tkmybatis mapper (1)
- 工商注册信息查询 (1)
- consul (1)
- 支付业务知识 (2)
- 数据库备份 (1)
- 字段设计 (1)
- 字段 (1)
- dba (1)
- 插件 (2)
- PropEdit插件 (1)
- web工程 (1)
- 银行业知识 (2)
- 国内托管银行 (1)
- 数据库 (1)
- 事务 (2)
- git (18)
- component-scan (1)
- 私人 (0)
- db2 (14)
- alias (1)
- 住房 (1)
- 户口 (1)
- fastjson (1)
- test (6)
- RSA (2)
- 密钥 (1)
- putty (1)
- sftp (1)
- 加密 (1)
- 公钥私钥 (3)
- markdown (1)
- sweet (1)
- sourcetree (1)
- 好工具 (1)
- cmd (1)
- scp (1)
- notepad++ (1)
- ssh免密登录 (1)
- https (1)
- ssl (2)
- js (2)
- h2 (1)
- 内存 (2)
- 浏览器 (1)
- js特效 (1)
- io (1)
- 乱码 (1)
- 小工具 (1)
- 每周技术任务 (1)
- mongodb (7)
- 内存泄漏 (1)
- 码云 (2)
- 如何搭建java 视频服务器 tomcat (1)
- 资源 (1)
- 书 (1)
- 四色建模法 (1)
- 建模 (1)
- 配置 (1)
- 职位 (1)
- nginx (1)
- excel (1)
- log4j2 (2)
- 做菜 (1)
- jmap (1)
- jspwiki (1)
- activiti (1)
- 工作流引擎 (1)
- 安卓 (1)
- acitviti 例子 (1)
- 二维码 (1)
- 工作流 (1)
- powerdesign (2)
- 软件设计 (1)
- 乐观锁 (1)
- 王者荣耀 (1)
- session (2)
- token (5)
- cookie (4)
- springboot (24)
- jwt (2)
- 项目路径 (1)
- magicbook (1)
- requestType (1)
- json (2)
- swagger (1)
- eolinker (1)
- springdata (1)
- springmvc (1)
- controlleradvice (1)
- profile (1)
- 银行四要素 (1)
- 支付人员资源 (1)
- 支付渠道 (1)
- yaml (1)
- 中文编码 (1)
- mongo (2)
- serializable (1)
- 序列化 (1)
- zyd (1)
- unittest (1)
- 工具 (1)
- Something (1)
- 通达信 (1)
- protobuf (1)
- 算法 (1)
- springcloud (2)
- hikari (1)
- rocketmq (7)
- cachecloud (1)
- serfj (1)
- axure (1)
- lombok (1)
- 分布式锁 (1)
- 线程 (2)
- 同步代码块 (1)
- cobar (1)
- mq (1)
- rabbitmq (1)
- 定时执行 (1)
- 支付系统 (3)
- 唱歌 (1)
- elasticjob (1)
- 定时任务 (1)
- 界面 (1)
- flink (2)
- 大数据 (1)
- 接私活 (0)
- 内部培训 (2)
最新评论
-
dannyhz:
做股票从短线 试水,然后 慢慢发现 波段和 中期的故事可挖, ...
搭台唱戏 -
dannyhz:
http://developer.51cto.com/art/ ...
如何自己开发框架 它的注意点是什么
http://blog.csdn.net/maidou_2011/article/details/7758282
由于mysq只有递增列的概念没有oracle的sequence功能,这样对于以前习惯用oracle数据库开发的程序员不太实用,尤其在要使用nextval在获取增长序列的时候。这样就设计一个能模拟oracle sequence的功能。
思路:我们可以用一张表来记录sequence数据,其实在使用oracle sequence的时候也类似是一张表,currentval、nextval和增长系数就类似表中的字段。而currentval、nextval我们可以设计成两个function这样在调用的时候返回currentval、nextval的值。
设计表seqMsql:
[sql] view plain copy
CREATE TABLE seqMysql
(
seqname VARCHAR(50) NOT NULL, --sequence名称
currentValue INT NOT NULL, --当前sequence值
increment INT NOT NULL DEFAULT 1, --增长系数
PRIMARY KEY (seqname)
) ENGINE=InnoDB;
实例:插入一个sequence数据
[sql] view plain copy
INSERT INTO seqMysql VALUES ('browserSeq',10002,1);
查询:
[sql] view plain copy
+------------+--------------+-----------+
| seqname | currentValue | increment |
+------------+--------------+-----------+
| browserSeq | 10002 | 1 |
+------------+--------------+-----------+
1 row in set
获取当前值function:
[sql] view plain copy
DELIMITER $
CREATE FUNCTION currval (seq_name VARCHAR(50))
RETURNS INTEGER
CONTAINS SQL
BEGIN
DECLARE current INTEGER;
SET current = 0;
SELECT currentValue INTO current
FROM seqMysql
WHERE seqname = seq_name;
RETURN current;
END$
DELIMITER ;
查询:
[sql] view plain copy
mysql> SELECT currval('browserSeq');
+--------------------+
| currval('browserSeq')|
+--------------------+
| 10002 |
+--------------------+
1 row in set
获取下一个值function:
[sql] view plain copy
DELIMITER $
CREATE FUNCTION nextval (seq_name VARCHAR(50))
RETURNS INTEGER
CONTAINS SQL
BEGIN
UPDATE seqMysql
SET currentValue = currentValue + increment
WHERE seqname = seq_name;
RETURN currval(seq_name);
END$
DELIMITER ;
查询:
[sql] view plain copy
mysql> SELECT nextval('browserSeq');
+-----------------------+
| nextval('browserSeq') |
+-----------------------+
| 10003 |
+-----------------------+
1 row in set
设置增长系数function:
[sql] view plain copy
DELIMITER $
CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER)
RETURNS INTEGER
CONTAINS SQL
BEGIN
UPDATE seqMysql
SET currentValue = value
WHERE seqname = seq_name;
RETURN currval(seq_name);
END$
DELIMITER ;
引用
由于mysq只有递增列的概念没有oracle的sequence功能,这样对于以前习惯用oracle数据库开发的程序员不太实用,尤其在要使用nextval在获取增长序列的时候。这样就设计一个能模拟oracle sequence的功能。
思路:我们可以用一张表来记录sequence数据,其实在使用oracle sequence的时候也类似是一张表,currentval、nextval和增长系数就类似表中的字段。而currentval、nextval我们可以设计成两个function这样在调用的时候返回currentval、nextval的值。
设计表seqMsql:
[sql] view plain copy
CREATE TABLE seqMysql
(
seqname VARCHAR(50) NOT NULL, --sequence名称
currentValue INT NOT NULL, --当前sequence值
increment INT NOT NULL DEFAULT 1, --增长系数
PRIMARY KEY (seqname)
) ENGINE=InnoDB;
实例:插入一个sequence数据
[sql] view plain copy
INSERT INTO seqMysql VALUES ('browserSeq',10002,1);
查询:
[sql] view plain copy
+------------+--------------+-----------+
| seqname | currentValue | increment |
+------------+--------------+-----------+
| browserSeq | 10002 | 1 |
+------------+--------------+-----------+
1 row in set
获取当前值function:
[sql] view plain copy
DELIMITER $
CREATE FUNCTION currval (seq_name VARCHAR(50))
RETURNS INTEGER
CONTAINS SQL
BEGIN
DECLARE current INTEGER;
SET current = 0;
SELECT currentValue INTO current
FROM seqMysql
WHERE seqname = seq_name;
RETURN current;
END$
DELIMITER ;
查询:
[sql] view plain copy
mysql> SELECT currval('browserSeq');
+--------------------+
| currval('browserSeq')|
+--------------------+
| 10002 |
+--------------------+
1 row in set
获取下一个值function:
[sql] view plain copy
DELIMITER $
CREATE FUNCTION nextval (seq_name VARCHAR(50))
RETURNS INTEGER
CONTAINS SQL
BEGIN
UPDATE seqMysql
SET currentValue = currentValue + increment
WHERE seqname = seq_name;
RETURN currval(seq_name);
END$
DELIMITER ;
查询:
[sql] view plain copy
mysql> SELECT nextval('browserSeq');
+-----------------------+
| nextval('browserSeq') |
+-----------------------+
| 10003 |
+-----------------------+
1 row in set
设置增长系数function:
[sql] view plain copy
DELIMITER $
CREATE FUNCTION setval (seq_name VARCHAR(50), value INTEGER)
RETURNS INTEGER
CONTAINS SQL
BEGIN
UPDATE seqMysql
SET currentValue = value
WHERE seqname = seq_name;
RETURN currval(seq_name);
END$
DELIMITER ;
发表评论
-
根据字段查询含有这个字段的表
2019-04-02 16:12 318select schema_name, TABLE_NAME, ... -
mysql 加索引的 inner join ,left join, right join 比较
2018-10-15 16:25 553三表 mysql 加索引 引用 https://blog.cs ... -
show 方法 mysql
2018-09-28 20:43 405引用 show index from table_name; ... -
mysql 命令
2018-09-27 13:45 315引用C:\Users\admin>mysql -h10. ... -
mysql时间 比较时间差函数
2018-08-21 21:09 410引用 mysql中计算两个日期的时间差函数TIMESTAMP ... -
mysql 时间 format
2018-08-06 17:29 367引用 SELECT DATE_FORMAT('2017-09- ... -
根据status来分组
2018-07-18 18:42 337引用 根据 apply_status 的值 来分类 ... -
mysql 本地服务器 让其他机器能访问
2018-05-23 00:14 355引用 C:\Program Files (x86)\MySQ ... -
group_concat 汇总的拼接字段好方法
2018-04-11 13:47 586select * from fm_voucher_detail ... -
mysql 对日期的写法 mybatis
2018-03-20 15:43 1316引用 字段截日期来等于 传入的日期类型 Date(ar.pa ... -
mysql count 各种情况 case when
2018-03-20 15:34 956select a.num , a.success ... -
mysql 根据sql查询
2018-03-19 11:59 399引用 根据日期查 select * from fm_acc ... -
mysql 三种插入方式 insert ignore replace into ON DUPLICATEKEY UPDATE
2017-12-05 15:22 0http://blog.csdn.net/liuabc0719 ... -
mysql实现merge into
2017-12-05 15:20 3162http://blog.itpub.net/29989552/ ... -
mysql 单表极限
2017-12-05 15:08 677引用 账户流水表 mysql> select coun ... -
mysql千万级数据库插入速度和读取速度的调整记录
2017-12-05 14:59 764引用 http://www.111cn.net/d ... -
MySQL的内存表
2017-12-05 14:33 342引用 “内存表”顾名 ... -
处理数据库百万级数据的注意点
2017-12-05 14:31 635引用 最近的项目需 ... -
jdbc访问mysql数据库急速
2017-09-09 15:20 384http://blog.csdn.net/whucyl/art ... -
mysql的dba 表
2017-06-26 10:31 438http://blog.163.com/freestyle_l ...
相关推荐
在Java应用程序中,如果需要在MySQL环境中实现类似Oracle序列的功能,我们需要自己设计解决方案。以下是一些关键知识点的详细说明: 1. **Java连接MySQL**: - 首先,你需要使用JDBC(Java Database Connectivity...
mysql实现序列可以与oracle一样有序列的功能
MySQL序列是一组整数:1, 2, 3, …,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 使用AUTO_INCREMENT MySQL中...
为了实现Flink CDC与MySQL的集成,需要自定义反序列化器,以便正确地处理MySQL的数据。 自定义反序列化器需要实现DebeziumDeserializationSchema接口,负责将SourceRecord转换为自定义的数据格式。在本例中,我们将...
本方案主要探讨如何在MySQL中实现一个可靠的序列/ID生成策略,以满足并发处理的需求。 首先,让我们关注`mysql_sequence.sql`文件。这个SQL脚本通常会包含创建序列的表结构以及相关的操作,例如插入、更新或获取下...
例如,MySQL通过`autoincrement`实现自增,Oracle则使用序列。但这些方法在分表后不再适用,因此需要寻找新的解决方案。 2. 解决方案对比 - 数据库表维护:在特定数据库中维护一个自增ID表,每次需要ID时加锁更新,...
为了在MySQL中实现类似于Oracle序列的功能,可以通过创建一张特殊的表和几个自定义函数来实现。这种方法可以有效地模拟Oracle序列的行为,并能够根据指定的步长和长度来生成数值。 ##### 2.1 创建模拟序列的表 在...
`queryInterceptors`参数则指定了一个实现了`com.mysql.cj.interceptors.QueryInterceptor`接口的类列表,这些类会在查询执行前或后插入操作。在这种情况下,`ServerStatusDiffInterceptor`被用作拦截器,其`...
在这个场景下,我们将深入探讨如何使用Flink CDC来监测MySQL数据库,并且实现自定义反序列化,以及如何通过Flink API和Flink SQL两种方式进行数据处理。 首先,让我们理解什么是CDC。CDC是一种数据库复制技术,它...
在MySQL中,自增序列(Sequence)是一种常用于生成唯一标识符的数据结构,尤其是在Oracle数据库中广泛使用。然而,MySQL自身并不直接支持Sequence,但可以通过创建表和存储过程来模拟这个功能。本教程将详细解释如何...
网上大多使用表和函数来模拟序列,但函数内部不支持直接使用数据提交,实际使用中,有可能出现数据回滚。为了解决这个问题,改用存储过程来实现。没有经过大量测试,只做了初步测试。新项目中,我会使用,但目前是否...
如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。 本章我们将介绍如何使用MySQL的序列。 使用 AUTO_INCREMENT MySQL 中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列。 实例 以下...
MySQL实现类似Oracle的序列 Oracle一般使用序列(Sequence)来处理主键字段,而MySQL则提供了自增长(increment)来实现类似的目的; 但在实际使用过程中发现,MySQL的自增长有诸多的弊端:不能控制步长、开始索引、...
本文档提供了一个详细的迁移案例,以及相关的SQL脚本,使得在MySQL中可以实现与Oracle序列相似的功能。 首先,文档介绍了一个名为`sequence`的表结构,这个表是模拟Oracle序列的核心组件。在这个表中,我们存储了...
MySQL序数生成器是开发...以上就是关于"mysql-sequence"这个Node.js MySQL序列生成器的基本介绍和使用方法。通过这个库,开发者可以在不依赖数据库特定功能的情况下,高效地管理序列,提高应用程序的灵活性和可靠性。
MySQL 雪花算法生成唯一整型ID主键的实现主要针对大数据环境下,需要大量生成全局唯一ID的需求。雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性...
Oracle数据库中,自增序列通常通过Sequence对象实现,而MySQL则通过在表定义中设置`AUTO_INCREMENT`属性来实现自增主键。 在描述中,我们看到一个具体的例子,首先创建了一个名为`test`的MySQL表,包含两个字段:`...