MySQL 8.4 Release Notes
19.5.1.37 复制和TRUNCATE TABLE
TRUNCATE TABLE 通常被视为 DML 语句,因此在 binary logging 模式为 ROW 或 MIXED 时,使用行格式对其进行日志记录和复制。但是在 STATEMENT 或 MIXED 模式下,使用事务存储引擎如 InnoDB 的表时,事务隔离级别为 READ COMMITTED 或 READ UNCOMMITTED,这使得语句基于日志记录不可能。
TRUNCATE TABLE 在日志记录和复制方面被视为 DDL 而不是 DML,以便可以将其日志记录和复制为语句。但是,对于 InnoDB 和其他事务表在复制端的影响仍然遵守 Section 15.1.37, “TRUNCATE TABLE Statement” 中描述的规则。 (Bug #36763)