Как я могу динамически создавать график работы в триггере?
-
30-09-2019 - |
Вопрос
Я создаю библиотечную систему.
Когда книга зарезервирована, я хочу, чтобы она автоматически изменила статус обратно на «Доступно» через 3 дня, если зарезервированный пользователь не одолжит его.
Я могу создать триггер для стреля, когда статус изменен на «зарезервированные», но я потерян на создании задания в течение 3 дней и изменить статус обратно на «Доступно»
Любые комментарии, советы и руководства будут высоко оценены :)
Решение
Вы должны сначала создать процедуру для обновления столбца, как вы хотите, принимая в качестве входного параметра ID книги (или что-то еще как PK).
В вашем триггере вызовите процедуру отправки пакета DBMS_SCHEDULER и определите дату начала через 3 дня, без перенаправления и для запуска вашей процедуры определены ранее с помощью: New.BookId в качестве входного параметра.
После того, как транзакция будет зачислена позже, работа будет представлена. Иначе в случае отката транзакции задание также будет возвращена.
Николас.
Другие советы
На каком языке вы кодируете?
Вообще для чего-то вроде этого я пишу работу CRON, которая будет периодически бежать (один раз в день до библиотеки?), Сделайте запрос, чтобы увидеть все, что было зарезервировано более 3 дней, и установить его обратно на доступность.