TRUNCATE TABLE is normally
regarded as a DML statement, and so would be expected to be
logged and replicated using row-based format when the binary
logging mode is ROW or
MIXED. However this caused issues when
logging or replicating, in STATEMENT or
MIXED mode, tables that used transactional
storage engines such as InnoDB when
the transaction isolation level was READ
COMMITTED or READ UNCOMMITTED,
which precludes statement-based logging.
Beginning with MySQL 5.1.32, TRUNCATE
TABLE is treated for purposes of logging and
replication as DDL rather than DML so that it can be logged and
replicated as a statement. However, the effects of the statement
as applicable to InnoDB and other
transactional tables on replication slaves still follow the
rules described in Section 12.2.10, “TRUNCATE TABLE Syntax” governing
such tables. (Bug#36763)

User Comments
Add your own comment.