要从两个不同表中删除的mysql事件
我有一个Mysql事件,它每分钟运行一次,以删除超过一个小时且尚未验证的记录 因此,表1(示例) 在上表中,1和4也需要删除,因为它们已从上表中删除。此表中没有时间戳列(我无法添加时间戳列) 要删除数据,请执行以下操作:要从两个不同表中删除的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
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,则可以自动将被引用记录的删除级联到引用记录。