MySQL: TRIGGER ON DELETE 是否由 DROP PARTITION 触发?

MySQL: is a TRIGGER ON DELETE triggered by DROP PARTITION?

在我的 MySQL 基础中,使用 engine=innodb 和 1 个分区文件,我有:

Table1是用软件填的,Table2是用Table1上的触发器填的,如下:

CREATE TRIGGER tgi_table1 AFTER INSERT ON table1 FOR EACH ROW INSERT INTO table2 values ( NEW.date, 1 ) ON DUPLICATE KEY UPDATE count = count+1;
CREATE TRIGGER tgd_table1 AFTER DELETE ON table1 FOR EACH ROW UPDATE table2 SET count = count-1;

此外,还有一个脚本会定期运行并在 table1 的旧分区上执行 DROP PARTITION

我的问题是:这些 DROP PARTITION 会激活触发器 tgd_table1 吗?

谢谢。

不,它不会使用 DELETE 查询来删除记录。它以不同的方式删除数据。这是mysql docs的解释:

DELETE: The trigger activates whenever a row is deleted from the table; for example, through DELETE and REPLACE statements. DROP TABLE and TRUNCATE TABLE statements on the table do not activate this trigger, because they do not use DELETE. Dropping a partition does not activate DELETE triggers, either.