Documentation Home
MySQL 8.0 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 43.3Mb
PDF (A4) - 43.4Mb
Man Pages (TGZ) - 297.2Kb
Man Pages (Zip) - 402.4Kb
Info (Gzip) - 4.3Mb
Info (Zip) - 4.3Mb
Excerpts from this Manual

MySQL 8.0 Reference Manual  / ...  / Replication  / Replication Notes and Tips  / Replication Features and Issues  /  Replication of CREATE TABLE ... SELECT Statements

19.5.1.7 Replication of CREATE TABLE ... SELECT Statements

MySQL applies these rules whenCREATE TABLE ... SELECT statements are replicated:

  • CREATE TABLE ... SELECT always performs an implicit commit (Section 15.3.3, “Statements That Cause an Implicit Commit”).

  • If the destination table does not exist, logging occurs as follows. It does not matter whetherIF NOT EXISTS is present.

    • STATEMENT orMIXED format: The statement is logged as written.

    • ROW format: The statement is logged as aCREATE TABLE statement followed by a series of insert-row events.

      Prior to MySQL 8.0.21, the statement is logged as two transactions. As of MySQL 8.0.21, on storage engines that support atomic DDL, it is logged as one transaction. For more information, seeSection 15.1.1, “Atomic Data Definition Statement Support”.

  • If theCREATE TABLE ... SELECT statement fails, nothing is logged. This includes the case that the destination table exists andIF NOT EXISTS is not given.

  • If the destination table exists andIF NOT EXISTS is given, MySQL 8.0 ignores the statement completely; nothing is inserted or logged.

MySQL 8.0 does not allow aCREATE TABLE ... SELECT statement to make any changes in tables other than the table that is created by the statement.