Вниз
Скачать: CL | DM;

Перестановка строк в БД   Найти похожие ветки 

← →
sst   (2002-06-14 13:32) [0]

Необходимо переставить в базе данных N полей (начиная со строки X до строки Y) на M позиций вниз (вверх).
Чего-то я никак не могу сообразить, как рабоать не с полями, а с целыми строками... Помогите примерчиком плз.


← →
NDeu ©   (2002-06-14 13:46) [1]

В БД нет понятие "M позиций вниз (вверх)".
Уточни что ты имееш ввиду и (сам) получиш ответ


← →
sst   (2002-06-14 13:54) [2]

Нужно физически переставить несколько строк вниз. В таблице итак используется сложный индекс (по нескольким полям). Нужно именно физически переставить. Т.е. я пердствляю это так: из исходной таблицы во временную копируем строки с начала и до М, потом нужное кол-во строк запоминаем, и копируем во вторую таблицу строки до позиции вставки. Потом копируем сохраненные и все что осталось, временную таблицу переименовываем в исходную.


← →
VictorT ©   (2002-06-14 13:59) [3]


> sst (14.06.02 13:54)

Правильно представляешь. В этом тебе помогут курсоры.


← →
dimis   (2002-06-14 15:17) [4]

ЛЮДИ ОПОМНИТЕСЬ!!
Вы же работаете с реляционной базой данных!!!
физически переставлять это по меньшей мере глупо, а по большей абсольтно не верно.
в FoxPro это может быть и прокатит,но кто даст гарантию?( разве только разработчики Субд). конечно некоторые могут возразить: "это проверено, все работает правильно и т.п.". Спорить не буду, но приведу аргумент против способа sst.
Твой вариант нормальный если в таблице 10,20.. пусть даже 100 записей. А если 1000, 10000, что тогда?времы выполнения возрастет значительно и не будет уже никого устраивать.
SQL разрабатывали достаточно умные люди и подумали о тростых програмистах ( таких как мы с вами)
существует такой оператор "order by" предназначенный специально для таких случаев
мой вариант такой: ввести еще одно поле в таблице "order_no" и при запросе селать так
select * from table1
where ....
order by order_no
этот запрос выдаст строки в нудном порядке.
если надо поменять порядок записей : просто меняется это поле и все... никаких перестановок или заморочек.

P.S. извиняюсь за резкость


← →
MishGan`   (2002-06-14 16:09) [5]

Полностью согласен с dimis.
Такого понятия как "физический порядок строк, хранящихся в таблице" в реляционной СУБД не существует.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
1-23537
Gerakul
2002-06-26 16:50
2002.07.08
Даже не знаю как и спросить...


1-23543
antonioxxx
2002-06-26 16:13
2002.07.08
Как избавиться от Synchronize?


1-23548
PTE
2002-06-26 17:12
2002.07.08
как выбрать путь к файлу и скопировать его в Edit


7-23812
Ptushenko Denis
2002-04-16 15:20
2002.07.08
Кто знает как уменьшить толшину скроллинга винды ?


6-23694
Dmitriy_0
2002-04-25 10:32
2002.07.08
Как работать со своим SMTP ?




   Наверх