| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Вставка в середину таблицы новой строки |
| Автор: fervex 27.5.2008, 22:54 |
| Здравствуйте! Есть таблица: Id Name Surname ++++++++++++++++ 1 Ivan Cherezov 2 Max Presnin 3 Petr Gorin 4 Fedor Kalinin 5 Leonid Kuptsov Подскажите, каким запросом можно вставить строку: 2 Timur Kirillov так, чтобы строки с Id 2,3,4,5 в первоначальной таблице стали иметь Id 3,4,5,6, т.е. спустить все последующие строки на +1 по Id? Спасибо! |
| Автор: v2v 27.5.2008, 22:59 |
| [] |
| Автор: skyboy 27.5.2008, 23:03 |
| если тебе нужен порядок сортировки, делай его через дополнительное поле(назови его, к примеру, porjadok) первичный ключ(коим, как я верю, у тебя выступает поле id) совсем для другого предназначен - не для сортировки. |
| Автор: Fortop 27.5.2008, 23:06 |
| skyboy, +1 P.S. что у тебя с небритостью происходит? |
| Автор: Feldmarschall 27.5.2008, 23:47 |
| fervex, никогда так не делай, как тебе v2v написал. |
| Автор: fervex 27.5.2008, 23:48 |
| Спасибо! А можно как-то сделать так, чтобы update table_name set id = id + 1 where id > 1; начинало с самого последнего id (в примере это 5), увеличивало его на +1, потом переходило к предыдущему и т.д. до 2 включительно, чтобы duplicated error не возникал? |
| Автор: v2v 27.5.2008, 23:51 |
| [] |
| Автор: Fortop 27.5.2008, 23:53 |
| v2v, ну и что ты делаешь? |
| Автор: v2v 27.5.2008, 23:55 |
| Fortop, отвечаю на вопрос. думаю автор умеет читать и проанализировал все предложенные ему решения! |
| Автор: Akina 28.5.2008, 09:15 |
| fervex, запомни навсегда - уникальный индекс-счетчик используется ТОЛЬКО для идентификации записи, организации связей и поддержания целостности. Его программное изменение - табу. Если нужно, чтобы в таблице было поле, имеющее какой-то внешний смысл (скажем порядковый номер) - необходимо для этого завести специальное поле. Любое отступление от этого правила непременно принесет тебе много беспокойства в будущем. |
| Автор: fervex 28.5.2008, 16:56 |
| Спасибо за советы! Так и поступлю! |