2012-02-07 2 views
4

У меня есть таблица с 9 записями, но я хочу вставить строку между 5-й и 6-й записью.Как вставить строку в таблицу между двумя существующими строками в Sql

+2

Почему? Не хотите ли вы заказывать свои результаты, когда вы запрашиваете таблицу? –

+1

Зачем? Физический порядок строк в хранилище таблиц ничего не значит для производительности, и в большинстве баз данных то, что вы просите, невозможно. –

+0

Думаю, он хочет переместить, например, песню в списке за одну позицию перед другой песней? ... –

ответ

3

Как правило, вы не вставляете строку в определенное место в таблице.

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

Затем используйте SELECT ... ORDER BY ..., чтобы отсортировать строки.

9

если вы настаиваете на

UPDATE mytable SET id = id + 1 where id > 5 ORDER BY id ASC 

insert into mytable (id,..) values (6,...) 
+1

Вам нужно ЗАКАЗАТЬ по id DESC, чтобы он увеличивался снизу вверх и избегал дублирования ошибок id. – postelrich

+0

@postelrich это так правильно! –