2013-03-09 3 views
0

У меня есть таблица с идентификатором "id", на которой есть auto_increment.Auto update unique id

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

Но то, что мне нужно, это способ изменить порядок записей, так что, например, есть 48 записей в db, и я хочу, чтобы запись 29 имела идентификатор 5 вместо 29. Так что есть способ для записать 29, чтобы заменить 5, и для них все двигаются вверх так, чтобы 5 теперь были записью 6 и т. д.?

Спасибо!

+0

Что вы имеете в виду *** автоматическое обновление * **? Каковы правила перестановки этих записей? Как насчет продвижения? – Kermit

+0

Вы все еще хотите идентификатор автоинкремента или хотите присвоить идентификатор все время? – stark

+0

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

ответ

0

Если вам нужно выделить идентификатор самостоятельно, не используйте столбец автоматического увеличения.

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

Прежде всего, вы бы освободить место для новой записи 5, таким образом:

UPDATE table SET id=id+1 WHERE id > 4 ORDER BY id DESC 

Тогда вы перенумеровать рекорд 29, таким образом,

UPDATE table SET id=5 WHERE id = 29 
+0

Не хотите сказать 30? – stark

+0

Почему я не мог использовать это с auto_increment? – tech292

+0

Да. 30 ты прав !!! –