要从两个不同表中删除的mysql事件

要从两个不同表中删除的mysql事件,mysql,Mysql,我有一个Mysql事件,它每分钟运行一次,以删除超过一个小时且尚未验证的记录 因此,表1(示例) 在上表中,1和4也需要删除,因为它们已从上表中删除。此表中没有时间戳列(我无法添加时间戳列) 要删除数据,请执行以下操作: delete from table1 where rs_user_sg_ts >= date_sub(NOW(), interval 1 hour); 如何使用同一事件一次性删除两个表中的数据 DELETE t1, t2 FROM table1 AS t1 INNER

我有一个Mysql事件,它每分钟运行一次,以删除超过一个小时且尚未验证的记录

因此,表1(示例)

在上表中,1和4也需要删除,因为它们已从上表中删除。此表中没有时间戳列(我无法添加时间戳列)

要删除数据,请执行以下操作:

delete from table1 where rs_user_sg_ts >= date_sub(NOW(), interval 1 hour);
如何使用同一事件一次性删除两个表中的数据

DELETE t1, t2
FROM table1 AS t1 
INNER JOIN table2 AS t2 ON t1.userid = t2.userid 
WHERE t1.rs_user_sg_ts >= date_sub(NOW(), interval 1 hour)
有关多表删除语法,请参阅

  DELETE a.*, b.* 
  FROM table1 a 
  JOIN table2 b 
    ON a.user_id = b.user_id 
    WHERE a.user_id in 
            (
                  select user_id from table1 
                  where rs_user_sg_ts >= date_sub(NOW(), interval 1 hour
             );

有关多表删除语法,请参阅。

在我看来,您不应该在一次查询中删除多个表

  DELETE a.*, b.* 
  FROM table1 a 
  JOIN table2 b 
    ON a.user_id = b.user_id 
    WHERE a.user_id in 
            (
                  select user_id from table1 
                  where rs_user_sg_ts >= date_sub(NOW(), interval 1 hour
             );
如果您仍然感兴趣,请使用以下方法:

多表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]
参考文献:


希望这有帮助

在我看来,您不应该在一次查询中删除多个表

如果您仍然感兴趣,请使用以下方法:

多表语法:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
tbl_name[.*] [, tbl_name[.*]] ...
FROM table_references
[WHERE where_condition]
参考文献:


希望这有帮助

您可以从多个表中删除,如下所示:

delete t1,t2 
from `table1` t1, `table1`t2
where t1.userid=t2.userid
and t1.rs_user_sg_ts >= date_sub(NOW(), interval 1 hour)

您可以按如下方式从多个表中删除:

delete t1,t2 
from `table1` t1, `table1`t2
where t1.userid=t2.userid
and t1.rs_user_sg_ts >= date_sub(NOW(), interval 1 hour)

为这个场景使用MySQL触发器!您的表使用什么存储引擎?如果InnoDB
InnoDB
,则可以自动将被引用记录的删除级联到被引用记录。使用MySQL触发器执行此场景!您的表使用什么存储引擎?如果InnoDB,则可以自动将被引用记录的删除级联到引用记录。