在我的MySQL基础上,使用engine = innodb和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吗?
谢谢。
答案 0 :(得分:0)
不,它不会使用DELETE查询来删除记录。它以不同的方式丢弃数据。以下是mysql docs的解释:
DELETE:只要从表中删除行,触发器就会激活;例如,通过DELETE和REPLACE语句。表上的DROP TABLE和TRUNCATE TABLE语句不会激活此触发器,因为它们不使用DELETE。删除分区也不会激活DELETE触发器。