MariaDB - Дублирующая запись '1-652' для ключа 'IX1_MY_Table' - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь обновить свою таблицу следующим запросом

 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

Что может быть вероятной причиной этой проблемы и как я могу решить эту проблему, в другой БД она работает как шарм (также и в MySql), поэтому ее ошибка только в MariaDB. Запрос, которым я поделился, является общим для всех БД. И действительно, я не думаю, что в запросе есть какая-то проблема, а также не хочу это менять, я просмотрел почти все возможные вещи, которые предлагаются разными блогами, но ничего не помогло

Пожалуйста, предложите немного обойти или исправить для того же

1 Ответ

0 голосов
/ 23 мая 2019

У меня работает приведенный ниже запрос

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

Но я все еще не понимаю, зачем нам нужен заказ в случае MariaDB, но другая база данных поддерживает нормальный запрос на обновление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...