Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
6-23701
Dime
2002-04-28 22:17
2002.07.08
Мониторинг сервера


1-23549
Gerakul
2002-06-26 16:52
2002.07.08
Даже не знаю как и спросить...


14-23754
VID
2002-06-06 02:02
2002.07.08
Что за dll такая ?


1-23536
N A N
2002-06-26 13:29
2002.07.08
Как в компоненте TEdit включить замену.....


1-23627
AngeL B.
2002-06-25 18:05
2002.07.08
что за ошибка в работе со строками





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский