Oracle_Sequence如何初始化开始值
Sequence的start with 值如何确定才能保证生成的主键不会冲突???
我的项目中最开始数据库表主键的生成策略是 increment,但由于后来采用了集群部署的方式,出现了主键冲突的问题. 故改为使用 Sequence生成.
<id name="id" column="id">
<generator class="increment" />
</id>
<generator class="sequence">
<param name="sequence">SEQ_RECEIPT_HIBERNATE</param>
</generator>
统计数据库中,指定序列被哪些表的主键使用,故将全部最大值加起来作为序列的开始值+1,可以保证绝对不会冲突.
有些表中无数据,因此上要作判空处理.
1. 一个序列只被一个表使用时
-- MANTIS_CARD_LOG : OID -- #### SEQ_RECEIPT_CARD_LOG ######--- -- else max(l1.OID) end) SEQ_RECEIPT_CARD_LOG_MAX from MANTIS_CARD_LOG l1 --
create sequence SEQ_RECEIPT_CARD_LOG minvalue maxvalue start increment nocache;
2. 一个序列被多个表使用时
--MANTIS_CARD_INFO:OID
--MANTIS_CARD_REP_INFO:OID
-- #### SEQ_RECEIPT_CARD ######---
--
select (c1c1.c1Max + c2c2.c2Max ) SEQ_RECEIPT_CARD_MAX
from
( else max(c1.OID) end) c1Max from MANTIS_CARD_INFO c1) c1c1,
( else max(c2.OID) end) c2Max from MANTIS_CARD_REP_INFO c2) c2c2
--
create sequence SEQ_RECEIPT_CARD minvalue maxvalue start increment nocache;
Hibernate主键生成策略参考文章:
Hibernate各种主键生成策略与配置详解
Oracle_Sequence如何初始化开始值的更多相关文章
- select2初始化默认值
之前用select2初始化默认值使用了select2('val','1'),这样做没问题,但只能用在单选上,多选的话,即使将val后面的值改成数组['0', '2']这种形式也没用. <scri ...
- easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法
easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库&quo ...
- select2多选框初始化默认值和获得值
select2多选自带手动输入搜索功能,可怜我还查寻半天api 获得值: //chang函数获取选择的option $(".js-example").change(function ...
- (原创)关于FFmpeg的一些有关的初始化默认值的问题
最近手头上要做一个媒体格式分析库,能解析文件,流的视频格式,编码格式等一些重要的视频参数能进行尽量多的提取.当我们做媒体相关方面的东西,自然而然就会想到FFmpeg这个强大的开源媒体库,所以我们肯定会 ...
- SpringXML方式给bean初始化属性值
可以在Spring容器初始化bean的时候给bean的属性赋初始值,直接在property标签里设置即可 1 2 3 4 5 6 <bean name="user**" cl ...
- 对sql初始化的值的处理
要把数据库的值置为数据库初始化时候的值(带隐式的null值)的sql语句. UPDATE member_base_info SET orderType =NULL,getaimAddress=NULL ...
- distpicker省市区插件初始化选中值的问题
$('#distpicker1').distpicker('destroy') //当需要重新生成的时候,需要先销毁 $('#distpicker1').distpicker({ province: ...
- vue 异步请求数据后,用v-if,显示组件,这样初始化的值就在开始的时候传进去了
请求到数据才会有的一个组件,并把数据传进组件中 https://www.cnblogs.com/LuckyWinty/p/6246698.html
- 零值初始化&字符串常数作为函数模板参数
1.在定义一个局部变量时,并希望该局部变量的初始化一个值,可以显示调用其默认构造函数,使其值为0(bool类型默认值为false). template <typename T> void ...
随机推荐
- canvas图形处理和进阶用法
前面的话 上一篇博客介绍了canvas基础用法,本文将更进一步,介绍canvas的图形处理和进阶用法 图形变换 图形变换是指用数学方法调整所绘形状的物理属性,其实质是坐标变形.所有的变换都依赖于后台的 ...
- 从"汉诺塔"经典递归到JS递归函数
前言 参考<JavaScript语言精粹> 递归是一种强大的编程技术,他把一个问题分解为一组相似的子问题,每一问题都用一个寻常解去解决.递归函数就是会直接或者间接调用自身的一种函数,一般来 ...
- Andrew Ng机器学习课程笔记--week4(神经网络)
Neural Networks: Representation 一. 内容概要 Neural Network Model Representation 1 Model Representation 2 ...
- C# 逆变与协变
该文章中使用了较多的 委托delegate和Lambda表达式,如果你并不熟悉这些,请查看我的文章<委托与匿名委托>.<匿名委托与Lambda表达式>以便帮你建立完整的知识体系 ...
- random模块函数分析(一)
random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): 这是一个产生整数随机数的函数,参数start代 ...
- spring配置和注解事务同时存在导致的事务嵌套
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt123 首先先看配置文件: [html] view plaincopy < ...
- 编译make的出错提示解决方案
编译出错笔记:start.s:20: Error: no such instruction: `ldr r0,=WTCON' 错误:没有这样的指令 解决:编译文件后缀名必须为大写S,改为start.S ...
- 建立maven工程pom.xml报错:web.xml is missing and <failOnMissingWebXml> is set to true
解决方式:如图添加web.xml文件即可
- jenkins+gitlab+sonar+testng构建持续集成测试环境(配置干货篇)
几个工具的安装部分就不在此介绍了! jenkins配置: 1.插件安装 2.root私钥配置 3.构建job配置 4.部署job配置 5.测试job配置 7.jenkins全局工具配置 8.jenki ...
- a链接易混淆与form表单简易验证用法详解
链接可以说遍布互联网,比如你想提供一个可以跳转到百度首页的链接给网友,那么代码如下: <a href="http://www.baidu.com">百度一下,你就知道& ...