SQL0803问题 键值重复
工作中遇到SQL0803问题 使用DB2AS400数据库 报数据库键值重复错误
经同事分析为索引的起始值与当前已有记录的最大索引值不匹配造成的,验证过程如下:
1.SELECT max(被索引字段) FROM 表名 t 得到的结果是31950
2.打开表SELECT * FROM SYSIBM.SYSSEQUENCES;看下这个表的start字段的值是否是31950,结果是31864
于是执行了下面的语句来更正这个索引的起始值
3.alter sequence 索引名 restart with 31951
经过上面三步,数据就可以保存了。
总结:
造成这个错误的原因是索引没有及时更新,可能是由于事物延迟、崩溃或者数据瞬间导入量过多等原因。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
公司有个主键表 采用高低位的形式
select * from HIBERNATE_SEQ where sequence_name = 'TPL_BORROWERINFO';
TPL_BORROWERINFO 1249
select max(BORROWERINFORID) from TPL_BORROWERINFO;
12481308
即下面的1248 + 10000条 = 上面的1249;
这是修改过的数据
-------------------------------------------
出错时 上述的值为
TPL_BORROWERINFO 1247 即生成主键序列时 生成的1247XXXX这个值时小于表中12481308的 因此导致了键值重复。
主键生成规则(count*10000 + rownums) 即1247*10000 + 行数
SQL0803问题 键值重复的更多相关文章
- map集合键值对存储,键值不重复,值可以重复
import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.Li ...
- 不能在具有唯一索引“IX_******”的对象“dbo.****”中插入重复键的行。重复键值为 (110, 372000, 2)。
当尝试插入数据,或者更新某个表的时候出现 不能在具有唯一索引“IX_******”的对象“dbo.****”中插入重复键的行.重复键值为 (110, 372000, 2). 遇到这个问题的时候,请找到 ...
- PHP 二维数组去重(保留各个键值的同时去除重复的项)
对于如下二维数组,要求对其进行去重: $arr = array( '=>array( 'name'=>'james', , ), '=>array( 'name'=>'susu ...
- c#字典怎么获取第一个键值 List<对象>获取重复项,转成Dictionary<key,List<对象>>
c#字典怎么获取第一个键值 Dictionary<string, int> dictionary = new Dictionary<string, int>(); dictio ...
- PHP获取数组中重复值的键值
$array = array ( 0=>'a', 1=>'b', 2=>'a', 5=>'b', 6=>'c', 40=>'d' ); $keyarr =[];$r ...
- Learning Spark 第四章——键值对处理
本章主要介绍Spark如何处理键值对.K-V RDDs通常用于聚集操作,使用相同的key聚集或者对不同的RDD进行聚集.部分情况下,需要将spark中的数据记录转换为键值对然后进行聚集处理.我们也会对 ...
- SQL键值约束、索引使用
添加約束的方式: [exec sp_helpconstraint 表名]->可用于查找到表创建的约束 CREATE TABLE stuInfo ( stuName ) NOT NULL,非空約束 ...
- 深度理解Key-Value Observing 键值观察
前言 在上一阶段的开发过程中,我们大量使用了 KVO 机制,来确保页面信息的及时同步.也因此碰到了很多问题,促使我们去进一步学习 KVO 的相关机制,再到寻找更好的解决方案.鉴于 KVO 让人欲仙 ...
- JAVA中的数据结构——集合类(线性表:Vector、Stack、LinkedList、set接口;键值对:Hashtable、Map接口<HashMap类、TreeMap类>)
Java的集合可以分为两种,第一种是以数组为代表的线性表,基类是Collection:第二种是以Hashtable为代表的键值对. ... 线性表,基类是Collection: 数组类: person ...
随机推荐
- 将NULL值转化为“”
// 将NULL转化为“”,1是需要修改的实体类参数,3是转化后的实体对象 String 2= JSON.toJSONString(1, SerializerFeature.WriteNullStri ...
- mysql5.7基于gtid的主从复制
两个节点:mkdir -p /data/mysql-5721/datamkdir -p /data/mysql-5721/innodbmkdir -p /data/mysql-5721/replica ...
- 学习MeteoInfo二次开发教程(十二)
1.添加新的Form窗体: 在解决方案资源管理器中,右键MeteoInfoDemo,“添加”,“Windows 窗体” 2.新窗体中添加好layersLegend1和Layout之后,要把layers ...
- Specified key was too long; max key length is 767 bytes解决方案
问题描述: 1. 使用spark sql处理数据逻辑,逻辑处理后使用 df.write.mode(saveMode).jdbc(url, tableName, connectionPropertie ...
- Magic xpa 3.x很容易将数据导出到Excel中
Magic xpa 3.x很方便的将表中数据导出到Excel文件中,还可以自动将表中数据生成各种图表. 通过使用自带的打印数据内部事即可实现. 1.首先将打印数据任务属性设置为“是”. 2.可使用主程 ...
- 记录一次 “ORA-12516:TNS:监听程序找不到符合协议堆栈要求的可用处理程序” 的处理过程
一.今天同事反馈业务化运行的数据中心库发生了oracle无法连接的情况,导致所有业务系统无法正常运作的问题.报:“ORA-12516:TNS:监听程序找不到符合协议堆栈要求的可用处理程序” 二.收到这 ...
- 最简单打开三星s8+usb调试模式的步骤
就在我们使用安卓手机通过数据线链接到PC的时候,如果手机没有开启usb开发者调试模式,PC则没能够成功读到我们的手机,部分app也没能够正常使用,遇到这个情况我们需要找解决方法将手机的usb开发者调试 ...
- Ubuntu、CenOS、Debian等不同版本简单概念与不同
最近在云计算中使用虚拟机,在进行Xen搭建时发现Ubuntu好像从10版本没有开始官方维护,又去了解了更多的Linux的版本 后续打算采用CenOS尝试一下 下文选自https://blog.csdn ...
- Window中的Docker 拉取Mysql镜像 并在本地Navicate链接
首先本地 拉取mysql镜像 以下是所有mysql镜像 我自己下载的为5.6 下面 以5.6为例:(拉取mysql5.6镜像) docker pull mysql:5.6 创建一个容器 doc ...
- C语言博客作业3--函数
C语言博客作业3--函数 1.本章学习总结 1.1思维导图 请以思维导图总结本周的学习内容,如下图所示: 1.2本章学习体会及代码量学习体会 1.2.1学习体会 描述本周学习感受,也可以在这里提出你不 ...