SET @old_binlog_format=@@binlog_format; SET BINLOG_FORMAT='ROW'; RESET MASTER; CREATE TABLE t1 (a INT) ENGINE=MyISAM; CREATE TABLE t2 (a INT) ENGINE=MyISAM; INSERT INTO t2 VALUES (1),(2),(3); **** Truncate of empty table shall be logged TRUNCATE TABLE t1; TRUNCATE TABLE t2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info binlog.000001 # Query # # use `test`; TRUNCATE TABLE t1 binlog.000001 # Query # # use `test`; TRUNCATE TABLE t2 DROP TABLE t1,t2; # # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE # CREATE TABLE t1 (a INT) ENGINE=MyISAM; CREATE TABLE t2 (a INT) ENGINE=MyISAM; INSERT INTO t1 VALUES (1),(2); # Connection: default BEGIN; INSERT INTO t2 SELECT * FROM t1; # Connection: truncate TRUNCATE TABLE t1; # Connection: default INSERT INTO t2 SELECT * FROM t1; SELECT COUNT(*) FROM t2; COUNT(*) 4 COMMIT; # Connection: truncate # Reaping TRUNCATE TABLE SELECT COUNT(*) FROM t1; COUNT(*) 0 SELECT COUNT(*) FROM t2; COUNT(*) 4 # Connection: default include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info binlog.000001 # Query # # BEGIN binlog.000001 # Table_map # # table_id: # (test.t2) binlog.000001 # Write_rows # # table_id: # flags: STMT_END_F binlog.000001 # Query # # COMMIT binlog.000001 # Query # # BEGIN binlog.000001 # Table_map # # table_id: # (test.t2) binlog.000001 # Write_rows # # table_id: # flags: STMT_END_F binlog.000001 # Query # # COMMIT binlog.000001 # Query # # use `test`; TRUNCATE TABLE t1 DROP TABLE t1,t2; SET BINLOG_FORMAT='STATEMENT'; RESET MASTER; CREATE TABLE t1 (a INT) ENGINE=MyISAM; CREATE TABLE t2 (a INT) ENGINE=MyISAM; INSERT INTO t2 VALUES (1),(2),(3); **** Truncate of empty table shall be logged TRUNCATE TABLE t1; TRUNCATE TABLE t2; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info binlog.000001 # Query # # use `test`; TRUNCATE TABLE t1 binlog.000001 # Query # # use `test`; TRUNCATE TABLE t2 DROP TABLE t1,t2; # # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE # CREATE TABLE t1 (a INT) ENGINE=MyISAM; CREATE TABLE t2 (a INT) ENGINE=MyISAM; INSERT INTO t1 VALUES (1),(2); # Connection: default BEGIN; INSERT INTO t2 SELECT * FROM t1; # Connection: truncate TRUNCATE TABLE t1; # Connection: default INSERT INTO t2 SELECT * FROM t1; SELECT COUNT(*) FROM t2; COUNT(*) 4 COMMIT; # Connection: truncate # Reaping TRUNCATE TABLE SELECT COUNT(*) FROM t1; COUNT(*) 0 SELECT COUNT(*) FROM t2; COUNT(*) 4 # Connection: default include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info binlog.000001 # Query # # BEGIN binlog.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 binlog.000001 # Query # # COMMIT binlog.000001 # Query # # BEGIN binlog.000001 # Query # # use `test`; INSERT INTO t2 SELECT * FROM t1 binlog.000001 # Query # # COMMIT binlog.000001 # Query # # use `test`; TRUNCATE TABLE t1 DROP TABLE t1,t2; SET BINLOG_FORMAT=@old_binlog_format;