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

Вниз

Update DBF   Найти похожие ветки 

 
Wild ©   (2004-03-02 12:55) [0]

Мастерам привет от чайников! :)
У меня опять накопились вопросы, может быть кто-нибудь поможет...
1. Можно ли с помощью sql-запроса поменять формат полей в существующей dbf-таблице? Например укоротить строковое поле, преобразовать строковое в дату и т.п.
2. У меня есть запросик на апдэйт, и ошибок я в нем найти не могу, а он не работает.

update pricemod_1 pm
set pm.tovar = (select p.tovar from price p
 where (p.code_tovar = pm.code_tovar)),
 pm.proiz = (select p.proiz from price p
 where (p.code_tovar = pm.code_tovar))
where exists (select p.code_tovar, tovar, proiz from price p
 where (p.code_tovar = pm.code_tovar) and
 ((p.tovar <> pm.tovar) or (p.proiz <> pm.proiz)))

Записей в обновляемой таблице около 14000, во второй около 25000. Мошт у меня просто комп вешаеца? То есть ошибок не говорит никаких, но за несколько часов (по словам очевидцев) запрос не заканчивается и комп к харду обращаться продолжает периодически... :)
3. Правильно ли я понимаю алгоритм действия такого запроса:
он сначала выбирает из pm строку соответственно разделу where, потом из p ищет данные по товару соответственно подзапросу, потом то же самое по производителю, и так для каждой строки pm?
Это ж тада получаеца несколько сот миллионов операций - мошт в этом проблема?
Заранее спасибо всем!


 
Alex_Bredin ©   (2004-03-02 13:20) [1]

1. можно. ALTER TABLE -см в хелп
2. в 5-й строке лучше поставить префиксы таблицы для полей.
3. создать индексы для полей связи.


 
Alex_Bredin ©   (2004-03-02 13:21) [2]


> 2. в 5-й строке лучше поставить префиксы таблицы для полей.

пардон, в 6-й


 
Alex_Bredin ©   (2004-03-02 13:24) [3]

и кстати в Вашем случае получается несколько сот миллиардов операций , тк.к у Вас тройной вложенный Select, да еще с квантором EXISTS


 
Wild ©   (2004-03-04 10:06) [4]

2,3. Префиксы есть, индексы тоже - результата нету :(
1. Насчет Alter Table не совсем понял. Там можно удалить столбец или добавить, а вот можно ли преобразовать...
It is possible to delete and add a column of the same name in the same ALTER TABLE statement, however any data in the column is lost in the process. This allows quick redefinition of columns while still in the database design stages.
Что-то мне подсказывает, что все данные при этом успешно пропипаются.
З.Ы. Просто я никогда не учил английский язык :)))


 
LaidBack   (2004-03-04 11:37) [5]

Поищи компонент TDbCheck - он все эти проблемы решает при помощи DbiDoRestructure. Бесплатный и с исходниками.


 
LazyCamel   (2004-03-04 13:47) [6]

<quote>1. Насчет Alter Table не совсем понял. Там можно удалить столбец или добавить, а вот можно ли преобразовать... </quote>
А модификация столбца это и есть последовательное удаление и создание. О данных нужно заботится отдельно. (Или воспользоваться каким-либо средством визуального проектирования, которые это умеют делать сами)


 
VAleksey ©   (2004-03-04 14:34) [7]

Запрос в корзину - однозначно.


 
max1000   (2004-03-05 12:19) [8]

Попробуй так
update pricemod_1 pm
set pm.tovar =(select p.tovar from price p,pricemod_1 pm where (p.code_tovar = pm.code_tovar)),
pm.proiz = (select p.proiz from price p,pricemod_1 pm where (p.code_tovar = pm.code_tovar))
where exists (select p.code_tovar, pm.tovar,pm.proiz from price p,pricemod_1 pm where (p.code_tovar = pm.code_tovar) and
((p.tovar <> pm.tovar) or (p.proiz <> pm.proiz)))


 
Wild ©   (2004-03-05 12:26) [9]

[7] Конструктивное предложение... :)
[8] Пока не пробовал, но в суть не въехал :)
Придется, наверное, от дбф-а отказываться...


 
max1000   (2004-03-05 12:34) [10]

И правильно берешь InterBase6.5 , Firebird, EMS InterBase Manager и вперед



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

Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.036 c
1-1079343040
Jager
2004-03-15 12:30
2004.04.04
Как заставить программу запускаться при закгузке в защ. режиме


9-1063296486
Unknown user
2003-09-11 20:08
2004.04.04
Оцените мою демку


8-1069512904
Юрий Ж.
2003-11-22 17:55
2004.04.04
Спецификация *.avi файла?


1-1079696024
zamkom
2004-03-19 14:33
2004.04.04
Как разобраться с датой


9-1060437914
Still_Swamp
2003-08-09 18:05
2004.04.04
Сфера случайных точек





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский