Главная страница
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.028 c
1-1091491749
Almaz
2004-08-03 04:09
2004.08.15
Выбор Published свойств, определенных в конкретном классе


14-1090967469
GanibalLector
2004-07-28 02:31
2004.08.15
Хочу красоты


14-1091179093
Vixen
2004-07-30 13:18
2004.08.15
Написать, а потом загнать ShareWare программу.


14-1091165953
alex_pv
2004-07-30 09:39
2004.08.15
Программеры из Казахстана откликнетесь


3-1090569543
vital
2004-07-23 11:59
2004.08.15
Count and distinct вместе ошибку выдают