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)