Как обновить поле id
существующей строки (автоинкремент), чтобы присвоить ему значение, которое обычно автоматически присваивается новой вставке (то есть наивысшему id + 1)?Обновить поле автоинкремента до максимального значения + 1
http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html состояние:
"... Вы можете также явно назначить 0 в колонку для создания порядковых номеров."
Но это, похоже, не так. Я попытался присвоить значение 0, и он делает именно это. Присваивает значение 0.
Я рассмотрел удаление и повторное включение строки, но это кажется беспорядочным.
Также пробовал:
UPDATE example_table
SET id = (SELECT id+1 FROM example_table ORDER BY id DESC LIMIT 1)
WHERE id = 1000;
Который возвращает ошибку: Вы не можете указать целевую таблицу 'example_table' для обновления в ЕКОМ
и:
UPDATE example_table SET id = max(id)+1 WHERE id = 1000;
Какие возвращает ошибку: Недопустимое использование групповой функции
Кажется, что это должно быть легко ... что мне не хватает?
спасибо .. это то, что на самом деле, что лучшим способом хотя? Подпроцесс в подзапросе кажется абсурдно сложным для такой простой задачи. – billynoah
@billynoah, да я согласен, или вам нужно получить maxid в переменной и использовать его, но вам нужно, чтобы оба они были в транзакции. – radar
Я попробовал ваше предложение только сейчас и получил ошибку *** Каждая производная таблица должна иметь свой собственный псевдоним *** – billynoah