Как создать функцию / процедуру в MariaDB для запуска сценария обновления при доступе к таблице?

0

У меня есть некоторые записи в моей БД со специальным статусом, пусть говорят t_status= 'T', и я хочу обновить каждый t_status которого t_moddate старше 45 минут, до t_status= 'X'.

Как я могу поместить это в хранимую процедуру в Maria DB?

Моя таблица выглядит следующим образом:

имя таблицы: тестовые столбцы: t_id, t_status, t_moddate, t_usr_update

Я думаю, мое обновление выглядит следующим образом:

UPDATE TEST SET t_status = 'X' where t_status = 'T' and t_moddate <= now()- interval(45 minutes);

CREATE PROCEDURE myProc()
     BEGIN

       UPDATE TEST
           SET t_status = REPLACE (first_name, 'T', 'X')
         WHERE t_status = 'T' and t_moddate <= now()- interval 45 minute;

     END$$

Но как мне получить это в хранимой процедуре, чтобы она запускалась по умолчанию?

Теги:
stored-procedures

1 ответ

1
Лучший ответ

Вы можете использовать EVENT, выполняемый по часам или независимо от выбранного вами интервала. Сначала включите его

SET GLOBAL event_scheduler = ON;

Затем напишите соответствующее событие

CREATE EVENT somename
  ON SCHEDULE EVERY '1' HOUR
  STARTS '2017-25-12 00:00:00'    
DO 
UPDATE TEST
       SET t_status = REPLACE (first_name, 'T', 'X')
     WHERE t_status = 'T' AND t_moddate <= now()- interval(45 minutes);
  • 1
    Работает именно так. Спасибо, мне пришлось снять атрибут STARTS и мне нужно было изменить интервал на interval 45 minute чем он работает. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню