MariaDB-键“ IX1_MY_Table”的重复条目“ 1-652”

时间:2019-05-11 06:50:46

标签: hibernate mariadb

我正在尝试通过以下查询更新表

 update MY_Table set NS_LEFT = NS_LEFT + 10  where NS_THREAD = 1 and NS_LEFT > 652

在MariaDb上执行此查询时,出现异常

ERROR org.hibernate.util.JDBCExceptionReporter - (conn=194) Duplicate entry '1-652' for key 'IX1_MY_Table'

唯一索引-

CREATE UNIQUE INDEX IX1_MY_Table ON MY_Table (NS_THREAD asc, NS_LEFT asc);

MariaDb版本:10.2.11-MariaDB

JDBC驱动程序版本:2.4.1

这个问题的可能原因是什么,我该如何解决呢?在另一个数据库中,它正以charm(在MySql中)工作,为什么它仅在MariaDB中失败。我共享的查询对于所有数据库都是通用的,并且真的不认为查询存在问题,也不想更改此查询,我经历了几乎所有可能的事情,这些事情是由不同的博客建议的,但是没有任何作用

请提出一些解决方法或修复该问题

1 个答案:

答案 0 :(得分:0)

以下查询对我有用

 UPDATE MY_Table ... AND NS_LEFT > 652 ORDER BY NS_LEFT DESC;

但是我仍然感到困惑,为什么在MariaDB情况下我们需要排序,但是其他数据库确实支持常规更新查询。