MySQL: Забавные находки UPDATE+ORDER



logo-mysql-110x57 Вот уж не думал что в операторе UPDATE можно использовать ключевое слово ORDER. И никогда не думал, что такое мне пригодится!

Вот пример. Мне нужно сделать такой запрос:

1
UPDATE t SET id = id + 1;

Как ни странно запрос вызовет ошибку уникальности первичного ключа. Проблема в том, что апдейт делается последовательно для всех записей, а не сразу всех.

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

1
UPDATE t SET id = id + 1 ORDER BY id DESC;

Дьявольски редко пригождающаяся вещь! Но иногда и палка стреляет.

Нет постов по теме.

Категории Веб-программирование |
автор: altesack / Среда, Май 25, 2011 / 3 комментов »

3 комментов

    Где же Вы были пару недель назад? Я использовал обходное решение:

    updade t set id=id+10000;
    update t set id=id-9999;

    )))))

    Ох ничего себе финт! Учтем-с…