Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 21:32   #1
Arassir
Форумчанин
 
Аватар для Arassir
 
Регистрация: 23.10.2008
Сообщений: 230
По умолчанию Триггеры

Задача состоит в следующем (магазин):
у заказа может быть один из двух статусов "Активный" или "Не активный"
также у каждого заказа указана дата его получения

Можно ли решить с помощью триггера такую задачу: если дата получения заказа отличается от текущей даты более чем на 2 дня, то статус заказа автоматически становится "Не активный"

Или это вообще не к триггерам?
Arassir вне форума Ответить с цитированием
Старый 27.06.2011, 21:45   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Триггера отрабатывают при редактировании таблиц (UPDATE, INSERT, DELETE). Можно конечно извратиться и при редактировании в триггере обновлять другие записи, следя при этом, чтобы рекурсии триггерной не было (зависит от СУБД ). А если не обновлялось сутки? Я думаю это не для триггеров. Как вариант - сделать UPDATE или процедуру c ним и периодически выполнять обновление статуса по условию.

+ Если доступ к базе из программы, что мешает программно оценивать статус?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 27.06.2011 в 21:53.
Аватар вне форума Ответить с цитированием
Старый 27.06.2011, 22:06   #3
Arassir
Форумчанин
 
Аватар для Arassir
 
Регистрация: 23.10.2008
Сообщений: 230
По умолчанию

Код:
что мешает программно оценивать статус?
наверно так и сделаю
Arassir вне форума Ответить с цитированием
Старый 05.07.2011, 11:18   #4
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Обычно такое делается при помощи заданий.
Например, написать процедуру, которая будет менять статус, если дата получения заказа отличается от текущей даты более чем на 2 дня. Далее организовать запуск этой процедуры автоматически, каждую ночь.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Триггеры JoyStick 0_o Помощь студентам 4 01.06.2011 12:13
Триггеры JoyStick 0_o SQL, базы данных 0 01.06.2011 10:24
Триггеры МартинИ SQL, базы данных 4 23.12.2010 20:12
Не могу создать триггеры. namburol БД в Delphi 1 20.06.2010 18:28
C++ Триггеры phantom4eg Помощь студентам 6 15.05.2010 14:49