mysql - 如何为付款状态创建触发器

时间:2017-01-06 09:39:43

标签: mysql triggers payment

我有两张桌子,预订和付款
结构如下:

  

预订
  id_booking(主要)
  id_schedule
  id_user
  date_booking
  date_expired

     

付款
  id_payment(小学)
  id_booking(外键)
  status_payment

我想用这些条件制造扳机   - 如果我在预订中插入数据,那么付款中的状态将自动更改为“未付款”' 付款中的 id_booking 会在预订中插入最后 id_booking   - 如果 date_expired date_booking 后超过1小时,状态将更新为“已过期”状态'
  - 如果 date_expired date_booking 之间的1小时范围内,状态将更新为“已付款”#39;

示例:

  

预订
  id_booking:1
  id_schedule:1
  id_user:1
  date_booking:2017-01-06 15:44:49
  date_expired:null

     

付款
  id_payment:1
  id_booking:1
  status_payment:' unpaid`

谢谢

1 个答案:

答案 0 :(得分:0)

应在插入时触发第一个触发器:

CREATE TRIGGER `trigger_name`
AFTER INSERT ON `booking` FOR EACH ROW
INSERT INTO payment (id_booking, status_payment)
VALUES (NEW.id_booking, "unpaid")

对于第二个和第三个触发器,您需要使用shedular的mysql事件,请参阅: MySQL trigger: Update when reaching a certain datetimehttp://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html