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.