I’m designing a library management database schema, let’s say there is a table “Borrow”
Borrow
id
user_id
book_id
borrow_date
due_date
isExpired
expired_day (number of days after the book is expired)
fine
Can the SQL Trigger implement the following circumstances?
1.Compare the due_date with Today, if it’s same–>send email–>mark isExpired to true
2.If isExpired is marked to true–>compare the difference between today and due_date, and
update expired_day—>update fine (expired_days * 5)
A trigger only fires when something happens on the table or row. It won’t fire continuously (or daily). If nothing happens to the table then your trigger will never fire so your checks can’t be done.
So, the trigger you describe would work when you first insert a record into the row, but there’s no automatic way with a trigger for it to fire after the due date period to check for the expiry and fine.
You would most likely need to setup a stored procedure that contained your code and find a way to run that on scheduled basis.
The following link goes over how to set that up:
Scheduled run of stored procedure on SQL server