Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.08;
Скачать: 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 вся ветка

Текущий архив: 2002.07.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
3-23509
3asys
2002-06-16 23:33
2002.07.08
Кодировка при использовании ADO


1-23539
Vladimir.st
2002-06-26 16:25
2002.07.08
Помогите разобраться со StringGirid ом


1-23604
boger
2002-06-25 11:27
2002.07.08
как записать в файл переменную нестандартную переменную?


3-23464
AndrewK
2002-06-14 15:57
2002.07.08
Как составить запрос. Неужели это невозможно.


7-23816
ATLANTIDO
2002-03-09 00:11
2002.07.08
без asmы