¿Cómo puedo crear dinámicamente una programación de trabajo en un gatillo?
-
30-09-2019 - |
Pregunta
Estoy creando un sistema de bibliotecas.
Cuando se reserva un libro, quiero que cambie automáticamente a la parte posterior de estado "disponible" en 3 días si el usuario reservado no pide prestado a él.
Me puede crear un gatillo para disparar cuando el estado cambia a "reservado", sino que me pierden en la creación de un puesto de trabajo a suceder en 3 días y cambiar la parte posterior de estado a "Disponible"
Cualquier comentario, aconseja y guía será muy apreciada:)
Solución
En primer lugar, debe crear un procedimiento para actualizar la columna que desee, tomando como parámetro de entrada el identificador de libro (o cualquier otra cosa como PK).
En su disparador, llamar al procedimiento de enviar el paquete DBMS_SCHEDULER y definir la fecha de inicio en 3 días el tiempo, sin redundancia, y para ejecutar su procedimiento definido antes, con el:. New.bookid como parámetro de entrada
Una vez que la transacción ha comprometido ser más tarde, se presentará el trabajo. De lo contrario, en el caso de retrotracción de la transacción el trabajo se deshace también.
Nicolas.
Otros consejos
qué idioma está codificando en?
En general, para algo como esto que escribir una tarea programada que ejecute periódicamente (una vez al día antes del horario de la biblioteca?), Hacer una consulta para ver todo lo que ha sido reservado por más de 3 días, y lo puso de nuevo a disposición.