Top.Mail.Ru
Ответы
Аватар пользователя
6лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Microsoft SQL Действие в БД в таблице в определённое время каждый день

Всем привет!
Нужно чтобы в БД Аптеки каждый день в 23:59 выполнялась проверка на истечение срока годности медикаментов. В таблице Лекарства проверяется, если дата коца срока годности меньше текущей, то автоматически должно быть в поле этой таблицы Просрочен 0 заменён на 1.
Как сделать такой триггер по времени или как эта сущность называется? Если можно - примеры. Смотрел Even, но это вроде только для MySQL.
Спасибо за ответы!

По дате
По рейтингу
Аватар пользователя
Новичок
6лет

Просьба указать какая база используется.
Mysql / postgresql / oracle ...smth else?
Вообще вам нужен не триггер, а джоба ( в mysql Называется event)
Триггера предназначены для обработки ивентов в базе ( именно когда в базе что-то случается а не по времени сервера) , например, вставка новых данных в таблицу, обновление (update) данных в таблице, удаление данных из нее, с разными настройками, построчно / для всей транзакции и тд.
Джоба это как раз то, что привязывается к расписанию.
В оракле, mysql она есть из коробки, просто создаешь, указываешь расписание и что запускать по этому расписанию ( какую хранимую функцию/процедуру). Соответсвенно перед созданием джобы надо написать эту процедуру и завернуть в нее все ваши апдейты по неким условиям.
В postgres там все веселее.
Если уйти вообще от поставленных условий, то не обязательно эту задачу решать внутри базы ( желательно конечно, но не обязательно). Можно написать shell скрипт который будет ходить в базу и делать эти апдейты и повесить скрипт в крон (планировщик задач для win ) с расписанием запуска

Аватар пользователя
Искусственный Интеллект
6лет

sql server какой, express или выше ?
если выше, то в нем есть sql server agent - он как раз для таких штук.