@nikolau

Увеличить на 1 id в mysql?

Нужно вставить запись в центр таблицы, записи выводятся так, как они идут по id. Выражение id = id+1 WHERE id>500 выдаст ошибку, т.к. поле id уникальное, и при увеличении будет равно следующему id.
  • Вопрос задан
  • 2032 просмотра
Пригласить эксперта
Ответы на вопрос 5
@Alchemist
Update records set id=id+1 where id>500 order by id desc
Ответ написан
irishmann
@irishmann
Научись пользоваться дебаггером
Скопировать запись из середины в конец, и апдейтнуть исходник.

UPD. А вообще стоило сначала погуглить. Ссылка
Ответ написан
lipatovroman
@lipatovroman
web разработчик, звукорежиссер, водолаз
Сначала нужно возьмите нужный Id и поместите его в конец, а потом вставьте вместо него нужную строку, если понял вас правильно...
Ответ написан
Комментировать
@alexfix
Если нет зависимых записей, то все остальное не особо критично, хотя не вижу, зачем такое нужно.. но если очень нужно, вопрос решаемый мне кажется.
Делаете хранимую процедуру в которой делаете курсор выбирая id >= 500 с сортировкой по id desc. В цикле увеличиваете id = id+1, освобождая таким образом место для предыдущей записи. После окончания цикла у вас освободится id =500. Мне кажется должно сработать
Ответ написан
@ksanti177
Когда создаешь колонку id галочка должна стоять на autoincrement (оно само будет считать ) могу путать буквы но суть проста. При создании тип должен но не обязан быть bigint значение 20. А В sql запросе id в место цифр null вставляй . Правильность можно проверить с помощью phpmyadmin, вкладка вставить. Он тебе правильный запрос сформирует. И соответственно надо старую колонку id удалить перед процессом. Если все правильно сделаешь то существующие записи пересчитает mysql
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы