从2个早于2个月的表中删除数据的MySql事件



我是MySql事件的新手,以前从未使用过它们,所以请耐心等待。使用我的数据库,我有订单详细信息发票表,我需要创建事件来删除所有早于2个月的记录以及where order_details status = 5invoices status = 3并且我希望该事件在每天凌晨3点进行删除我如何做到这一点任何帮助都将不胜感激

更新:

两个表都有名为created_at的时间戳列

表格定义

A-订单_数据

  • id
  • 订单栏
  • 说明
  • 状态
  • 创建日期

B-发票

  • id
  • invoice_id
  • 状态
  • 创建日期
CREATE EVENT delete_every_day
ON SCHEDULE
EVERY 1 DAY STARTS DATE_ADD(CURDATE(), INTERVAL'1 3' DAY_HOUR)
-- Will delete every day record from invoices with status = 3 and more than 2 
-- month old, and the order_details with status = 5 and more than 2 month old
-- It will start deleting next day at 3:00 AM.
DO
BEGIN
DELETE FROM your_schema.invoices
WHERE TIMESTAMPDIFF(MONTH,created_at, NOW()) > 2
AND status = 3;
DELETE FROM your_schema.order_details
WHERE TIMESTAMPDIFF(MONTH,created_at, NOW()) > 2
AND status = 5;
END 

我希望这能回答你的问题。请确保在表名(如[schema_name.table_name](中包含架构(数据库名称(,以确保事件与正确的表相关联。祝你好运

最新更新