У меня есть уникальный индексированный столбец A с целым числом в нем. Я бы хотел, чтобы он увеличивался на 1, в Oracle я делаю: update table set A = A + 1, и он сработал. Но в mySQL он дает мне следующую ошибку: - Ошибка базы данных MySQL: повторяющаяся запись «2» для ключа 1. У меня есть три строки в таблице со значением: 1, 2 и 3 в отдельности. Я знаю, почему это дает мне эту ошибку. Но как решить эту проблему? Благодарю.обновить уникальный индексированный столбец в mysql
3
A
ответ
2
Вы получаете эту ошибку, потому что ваш UPDATE TABLE SET A = A + 1
, при обновлении первой строки от 1 до 2 (1 + 1), он получит конфликт с вашим вторым ROW , потому что там уже есть строка с ID = 2.
вы должны сделать это спусковое от последней строки к первой, вы должны изменить свой запрос к этому:
UPDATE TABLE SET ID = ID + 1 ORDER By ID DESC;
Предложение DESC
сделает обновления со дна вашего стола, поэтому он не найдет дублирующий идентификатор на своем пути ...
3
Вы можете сделать это используя ORDER BY
:
update table
set A=A+1
order by A desc
+0
Я действительно не знал этого! – Strawberry
Смежные вопросы
- 1. mysql медленный запрос на индексированный столбец
- 2. Обновить столбец в MySQL
- 3. MySQL меняет столбец на уникальный
- 4. Что делает MySQL после найти первый результат, если в пункте, где находится уникальный индексированный столбец
- 5. mysql Обновить столбец
- 6. Обновить столбец таблицы mysql
- 7. Обновить столбец возраста в MySQL
- 8. MySQL UNION не возвращает уникальный столбец
- 9. SQLAlchemy + Уникальный строковый столбец MYSQL усекается
- 10. MySQL уникальный столбец для мобильного номера
- 11. mysql - создать индексированный столбец часа из существующей отметки времени
- 12. MySQL Query IN() пункта Slow на индексированный столбец
- 13. Force MySQL обновить TIMESTAMP столбец
- 14. Уникальный ключ в MySql
- 15. Обновить столбец с префиксом в mysql
- 16. Не удалось обновить столбец в mysql
- 17. Найти, обрезать и обновить столбец в mysql
- 18. Как обновить весь столбец в mysql?
- 19. - счет (индексированный столбец) быстрее, чем count (*)?
- 20. Изменить столбец на уникальный
- 21. C# SQLite-net определяет уникальный уникальный столбец
- 22. PHP переписать текст данных в mysql, но не уникальный столбец
- 23. Уникальный столбец Parse Cloud update
- 24. Обновить маркер уникальный
- 25. нужен уникальный столбец в существующий запрос
- 26. Вставить уникальный PRNG в столбец Db
- 27. Возможно ли иметь индексированный вид в MySQL?
- 28. MySQL Уникальный дизайн индексов
- 29. MySQL - обновить тот же столбец дважды
- 30. PHP/mySQL get_file_contents и обновить столбец
Значит, это работает в Oracle? – Strawberry
Как вы решаете это зависит от того, что вы хотите. Вы хотите удалить ДРУГИЕ строки, где a = 2? Вы хотите иметь две строки, где a = 2? Скажите нам, что является правильным конечным результатом, и тогда кто-то может помочь вам туда добраться. – MJB
Erm, OP захочет, чтобы строка, равная «2», стала «3» – Strawberry