MySQL:是DROP PARTITION触发的TRIGGER ON DELETE?

时间:2017-09-14 10:46:15

标签: mysql triggers database-partitioning

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

  • 表1按日期划分
  • 表2按日期计算表1的条目

表1由软件填写,表2由表1中的触发器填充,如下所示:

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吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

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

  

DELETE:只要从表中删除行,触发器就会激活;例如,通过DELETE和REPLACE语句。表上的DROP TABLE和TRUNCATE TABLE语句不会激活此触发器,因为它们不使用DELETE。删除分区也不会激活DELETE触发器。