duplicate-mysql存储过程报错,报的联合主键约束错误

问题描述

mysql存储过程报错,报的联合主键约束错误

Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '5RgwDTn5zeAoPM1yXxeRkm-YUseiccsUNQxcQeBPK3Td3' for key 'PRIMARY' ### The error may involve defaultParameterMap ### The error occurred while setting parameters ### SQL: {call pro_read_one (?, ?, ?)} ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '5RgwDTn5zeAoPM1yXxeRkm-YUseiccsUNQxcQeBPK3Td3' for key 'PRIMARY' ; SQL []; Duplicate entry '5RgwDTn5zeAoPM1yXxeRkm-YUseiccsUNQxcQeBPK3Td3' for key 'PRIMARY'; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '5RgwDTn5zeAoPM1yXxeRkm-YUseiccsUNQxcQeBPK3Td3' for key 'PRIMARY'

解决方案

BEGIN
DECLARE ISEXIST INT DEFAULT 0;
DECLARE nextval int DEFAULT 0;

SELECT COUNT(1) INTO ISEXIST FROM TBL_RES_READ C WHERE C.RES_ID = RID AND C.USER_ID = UID;

IF ISEXIST = 0 THEN
INSERT INTO TBL_RES_READ(RES_ID, USER_ID, CREATE_DATE) VALUES (RID, UID, NOW());
END IF;

call get_next_version('seq_res_version',@next_val);

select @next_val into nextval;

update tbl_res_user_unread u
set u.status_new = 0, u.comment_new = 0, u.version = nextval
where u.res_id = rid and u.user_id = uid;

SET RES = 1;
END
存储过程里面这么写的

解决方案二:

开启事务,判断 。你这种的 等你做判断的时候 已经insert 过了

时间: 2024-11-15 20:37:21

duplicate-mysql存储过程报错,报的联合主键约束错误的相关文章

jpa 外键做联合主键-JPA 外键做联合主键 报错

问题描述 JPA 外键做联合主键 报错 get.set方法hashCode.equals都有 在Valuator报错 Persistent type of override attribute "pk.pjcontype" cannot be resolved Pjrelation.java 在Pjrelation中报错 In attribute 'pjrelation', the "mapped by" value 'pk.valuator' cannot be

求助spring事务异常,报错报了昨天一天了55555,在线等啊

问题描述 求助spring事务异常,报错报了昨天一天了55555,在线等啊 就是一直都报这个错,昨天一天都没解决,感觉是确实一个方法,NoSuchMethodError:org.springframework.jdbc.datasource.DataSourceTransactionManager.determineTimeout,我导入源码看不到这个方法,只有一个调用它的参数,,,求大牛或者神牛帮帮忙,拜托了....困扰了一天啊,,,,!!!整个人都不好了,在线等!! 报错信息: Except

Mysql的联合主键

mysql的联合主键:用2个字段(或者多个字段,后面具体都是用2个字段组合)来确定一条记录,说明,这2个字段都不是唯一的,2个字段可以分别重复,这么设置的好处,可以很直观的看到某个重复字段的记录条数. 在mysql当中我们经常认为主键只能设置一个,那如果我们想设置两个呢?如下图: CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` varchar(25) DEFAULT NULL, `sess_id` varcha

mysql auto_increment 与 联合主键冲突问题

mysql 5.5之前,auto_increment字段必须为主键,有的时候,这种自增字段,并没有多大的实际意义,而我们需要多个字段组成主键. 例如: 用户只能对购买的商品,进行一次评价,评价的自增ID,没什么用处,用户的ID和商品ID组成的联合主键,意义就大的多了.如果想保留auto_increment字段,就要使用高版本的mysql了. mysql> ALTER TABLE `order` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `user_id` , `or

Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计

俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/Annotation) 联合主键 一对一单向外键联合主键(Xml/Annotation) 一对一组件关联(XML/Annotation) 理解组件 领域驱动设计--自动生成数据库脚本 一对一关系的小结 一些出错问题的总结   自动生成数据库脚本 一般在项目开发过程中,我们的习惯是先建好数据库和表,然后

联合主键问题

问题描述 因为开发环境问题.无法粘贴代码,只有截图了:不要嫌弃呀主键类:实体类:调用:错误:初学java请大神指点.查询的这个表无主键.但可以做这样一个联合主键.结果还是报错.求指正 解决方案 本帖最后由 sun280660410 于 2014-07-02 21:11:04 编辑解决方案二:主键类里是重写了hashcode没有截上

【HIBERNATE框架开发之四】HIBERNATE-ANNOTATION常用的注解归总&&ID的生成策略&&联合主键

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/hibernate/811.html 这篇主要讲解Hibernate中Annotation的常用注解和ID的生成策略以及联合主键三块:     首先介绍些常用的Annotation注解: 1.  当表名与类名不一致: @Table(name="数据库表名")        (javax.persistence)      如果类名与

(论坛答疑点滴)联合主键的情况怎么在DataGrid中利用DataKeys定位记录?

datagrid   比如表中三个字段 key1 int,key2 int,item varchar(50) 前面2个字段联合主键 前台代码: <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" DataKeyField="DoubleKey">                 <Columns>        

在Mysql,SqlServer及Oracle中设置主键自动增长

1.把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: create table customers(id int auto_increment primary key not null, name varchar(15)); insert into customers(name) values("name1"),("name2"); select id from customers;