2011-12-16 3 views
1

У меня есть таблица из примерно 30 строк. Мне нужно вставить новую строку специально в 3-ю строку. Я попытался вручную присвоить ему значение «id», надеясь, что автоинкремент позаботится об остальном, но это даст мне ошибку «повторной записи» для первичного ключа.Вставьте новую строку в определенное место в MySQL

Есть ли способ обойти это? Это одноразовое исправление, поэтому мне не нужно «гибкое» решение или что-то еще.

Спасибо!

ответ

4

выполнить это обновление, прежде чем вставить строку с идентификатором = 3:

update your_table set id=id+1 where id >= 3; 
+0

Я хотел бы добавить небольшую спецификацию: если поле ID является PRIMARY KEY, с вашей командой вы получите сообщение об ошибке (Duplicate Entry). Но если вы измените порядок обработки записей (тот, у которого значение ID больше значения с идентификатором меньше), ваша команда не сработает. UPDATE your_table SET id = id + 1 WHERE id> 3 ORDER BY DESC лучше. – rfellons

0

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

Если вам нужны ваши результаты в определенном порядке, используйте предложение order by в вашем SQL.

Зачем вам нужна запись, помещенная в таблицу в определенном порядке?

Смежные вопросы