|
|
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
В таблице допустим 5 записей с ID=1...5 Как написать SQL запрос для добавления новой записи после записи с ID=2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 09:31 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
sfsfВ таблице допустим 5 записей с ID=1...5 Как написать SQL запрос для добавления новой записи после записи с ID=2 Уважаемый, Во-первых, здесь форум не по SQL, а по С++; Во-вторых, позвольте у Вас спросить: знаете ли Вы теорию SQL. Если "нет", то я Вам расскажу, если "да", то напомню: - SQL (по определению) оперирует с множествами и ему безразличен порядок следования элементов этого множества (т.е. упорядоченность). Поэтому новая запись может появиться в любом месте... - Другое дело, что могут использоваться индексы (или ORDER BY в запросах SELECT), при помощи которых обеспечивается ЛОГИЧЕСКАЯ упорядоченность элементов (речи о ФИЗИЧЕСКОЙ упорядоченности не идет...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 09:46 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
это все понятно. Тогда вопрос такой. Как реализовать добавление записи и переиндексацию всех записей. Было Id=1 Id=2 Id=3 Id=4 Id=5 Нужно добавить запись Логически после ID=2 и переиндексировать все записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 09:53 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
поле ID не автоинкрментрое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 09:53 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
Рецепт щастья: 1. не заниматься фигней. 2. если уж приходится, то сначала увеличь все ИД>2, потом добавь запись с ИД=2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 10:19 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
sfsfэто все понятно. Тогда вопрос такой. Как реализовать добавление записи и переиндексацию всех записей. Добавление записи: insert into <таблица> [[(<список полей>)] [value (<значения>)]] | [select...from...] (если я, конечно, правильно понял вопрос...) Если требуется более подробно - смотрите мануалы по соответствующей СУБД... А переиндксация идет автоматически (если индекс, конечно, существует) sfsf Было Id=1 Id=2 Id=3 Id=4 Id=5 Нужно добавить запись Логически после ID=2 и переиндексировать все записи Так вроде бы "Логически после ID=2" следует id=3... Мне это напоминает монолог одного юмориста про два девятых вагона: "...Рабочие, которые отцепляли девятый вагон, тоже были люди неглупые и тоже умели считать до десяти. И тоже знали, что девятый - это тот, который после восьмого, а не тот, который перед десятым..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 10:30 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
Задача кстати, вполне реальная, зря вы набросились. Например хранятся документы в дереве/списке и пользователь меняет порядок их вывода. Решается, как и говорил Карабас Барабас - update Table set ID = ID + 1 where ID >= 2 insert into Table( ID, .... ) values ( 2, .... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 12:08 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
update Table set ID = ID + 1 where ID >= 2 insert into Table( ID, .... ) values ( 2, .... ) Вот это решение мне подходит. Надеюсь ADOQuery справиться с запросом update Table set ID = ID + 1 where ID >= 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 16:35 |
|
||
|
SQL запрос?
|
|||
|---|---|---|---|
|
#18+
sfsfэто все понятно. Тогда вопрос такой. Как реализовать добавление записи и переиндексацию всех записей. Было Id=1 Id=2 Id=3 Id=4 Id=5 Нужно добавить запись Логически после ID=2 и переиндексировать все записи Одному программисту начальник ставил задачу - "Мне не нравится что моя фамилия на "M" идёт в списках последняя. Приказ изменить БД чтобы я был первый а мой тесть второй". ))))))))))))))))))))))))))))))) IMHO некрасиво это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 16:47 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=402&tid=2033179]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
6ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 391ms |

| 0 / 0 |
