Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.059 c
14-1091016286
Vlad Oshin
2004-07-28 16:04
2004.08.15
Край березового ситца. Рассказ.


6-1086947219
m2003
2004-06-11 13:46
2004.08.15
Почта на Делфи


14-1089499317
Денис
2004-07-11 02:41
2004.08.15
Подробный и понятный комментарий!


4-1089118392
Wistler
2004-07-06 16:53
2004.08.15
Работа с пользователями в домене WinNT


8-1086102528
lelik
2004-06-01 19:08
2004.08.15
Shape под наклоном