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

Вниз

Как правильно внести изменения в базу   Найти похожие ветки 

 
AD_infiniTUM   (2004-07-22 14:30) [0]

Таблица содержит некоторое количество полей.
Поле Field1 ключевое. Нужно в записи с разными значениями Field1, записать в Field2, к примеру, единицу.

Как правильно это сделать?
1. Для каждого значения Field1 выполнить свой SQL вопрос.
UPDATE MainTable SET Field2=1 WHERE Field1=2
UPDATE MainTable SET Field2=1 WHERE Field1=7
UPDATE MainTable SET Field2=1 WHERE Field1=90
UPDATE MainTable SET Field2=1 WHERE Field1=100
...

2. В одном запросе через OR
UPDATE MainTable SET Field2=1 WHERE Field1=2 OR Field1=7 OR Field1=90 OR Field1=100 ...
3. Или с помощью IN
UPDATE MainTable SET Field2=1 WHERE Field1 IN (2, 7, 90, 100 ...)


 
Ega23 ©   (2004-07-22 14:33) [1]

Все 3 варианта имеют право на существование. Я бы сделал через IN, но это моё ИМХО. просто так мне было бы удобнее смотреть на код.


 
Term   (2004-07-22 14:34) [2]

зачем так мудрить


 
Johnmen ©   (2004-07-22 14:38) [3]

Последние 2 варианта с т.з. скорости м.б.одинаковы
Для удобства 3.


 
Ega23 ©   (2004-07-22 14:41) [4]

Оффтоп:

Последние 2 варианта с т.з. скорости м.б.одинаковы

Минуты 2 въезжал, что т.з. это "Точка зрения", а не "Тех.Задание".


 
bushmen ©   (2004-07-22 14:42) [5]

> м.б.одинаковы

Они одинаковы будут


 
bushmen ©   (2004-07-22 14:43) [6]

> Ega23 ©   (22.07.04 14:41) [4]

А "м.б." еще не удалось расшифровать? :)


 
Ega23 ©   (2004-07-22 14:45) [7]

bushmen ©   (22.07.04 14:43) [6]

"Маленькая бутылка", что же ещё?   :о)


 
AD_infiniTUM   (2004-07-22 15:21) [8]

Т.е. в любом случае 2, 3 варианты, даже если этих значение в скобочках (2, 7, 90, 100 ...) будет порядка тысячи.


 
Ega23 ©   (2004-07-22 15:54) [9]

Т.е. в любом случае 2, 3 варианты, даже если этих значение в скобочках (2, 7, 90, 100 ...) будет порядка тысячи.

Я бы даже сказал не "даже если", а "тем более", если их тысячи. Так всё одной транзакцией пройдёт.
Кстати, скорее всего ты динамически такую строчку составлять будешь? Тогда вариант 3, ИМХО, проще всего.


 
Johnmen ©   (2004-07-22 16:04) [10]

>bushmen ©   (22.07.04 14:42) [5]
>Они одинаковы будут

Я осторожно сказал "м.б.", т.к. наверняка ни я, ни ты не знаем. Ведь всё зависит от того, как аксессный драйвер разберет логическое выражение, и как будет ему следовать...

>AD_infiniTUM  

Посмотри, какой там макс.размер для текста запроса.


 
AD_infiniTUM   (2004-07-22 16:40) [11]

Ega23

> Кстати, скорее всего ты динамически такую строчку составлять
> будешь?

Да.
Johnmen

> Посмотри, какой там макс.размер для текста запроса.

А где можно это посмотреть? В справке я не нашел. А тип параметра WideString или TStringList. Если максимальная длина ограничена этими типами, то влезет много.


 
Johnmen ©   (2004-07-22 17:08) [12]

Надо порыться в доках по Аксесу. Там, где общая спецификация...


 
bushmen ©   (2004-07-22 17:12) [13]

> Johnmen ©   (22.07.04 16:04) [10]

Не знаю как в Access, но в MSSQL третий вид приводится ко второму и именно он выполняется.


 
Ega23 ©   (2004-07-22 17:16) [14]

bushmen ©   (22.07.04 17:12) [13]

Откуда информация?


 
bushmen ©   (2004-07-22 17:24) [15]

> Ega23 ©   (22.07.04 17:16) [14]

www.sql.ru и собственные наблюдения


 
Ega23 ©   (2004-07-22 17:44) [16]

bushmen ©   (22.07.04 17:24) [15]

Просто давно хотел разобраться в алгоритме оптимизации запросов, только что-нибудь серьёзное почитать хотелось бы.


 
bushmen ©   (2004-07-22 17:47) [17]

> Ega23 ©   (22.07.04 17:44) [16]

Нет ничего серьезнее, чем собственные эксперименты и наблюдения :)


 
Ega23 ©   (2004-07-22 17:49) [18]

Нет ничего серьезнее, чем собственные эксперименты и наблюдения :)

Это верно, но метод Монте-Карло хорош только в том случае, если срок жизни стремиться к бесконечности.
А вот Microsoft что по этому поводу говорит, интересно?



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

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

Наверх




Память: 0.48 MB
Время: 0.045 c
14-1091078630
Ega23
2004-07-29 09:23
2004.08.15
Class Designer


1-1091520951
Bumer
2004-08-03 12:15
2004.08.15
ComboBox


6-1086816366
Sphinx
2004-06-10 01:26
2004.08.15
Автонастройка прокси


14-1091029810
DeadMeat
2004-07-28 19:50
2004.08.15
Сетка с WinXP и другими...


3-1090509405
negrila
2004-07-22 19:16
2004.08.15
Firebird users





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