MySQL 9.0 发布说明
TRUNCATE TABLE 通常被认为是 DML 语句,因此在二进制日志模式为 ROW 或 MIXED 时,预期使用基于行的格式记录和复制它。但是,当使用 STATEMENT 或 MIXED 模式记录或复制使用事务存储引擎(如 InnoDB)的表时,这会导致问题,当事务隔离级别为 READ COMMITTED 或 READ UNCOMMITTED 时,这会阻止基于语句的日志记录。
TRUNCATE TABLE 在记录和复制方面被视为 DDL 而不是 DML,以便可以将其作为语句进行记录和复制。但是,该语句对副本上的 InnoDB 和其他事务表的有效性仍然遵循 第 15.1.37 节,“TRUNCATE TABLE 语句” 中描述的规则,这些规则管理此类表。(错误 #36763)