Atomic Data Definition Statement Support 2465 MySQL 8.0 supports atomic Data Definition Language (DDL) statements. This feature is referred to as atomic DDL . An atomic DDL statement combines the data dictionary updates, storage engine operations, and binary log writes associated with a DDL operation into a single, atomic operation. The operation is either committed, with applicable changes persisted to the data dictionary, storage engine, and binary log, or is rolled back, even if the server halts during the operation. Atomic DDL  is not  transactional DDL . DDL statements, atomic or otherwise, implicitly end any transaction that is active in the current session, as if you had done a  COMMIT  before executing the statement. This means that DDL statements cannot be performed within another transaction, within transaction control statements such as  START TRANSACTION ... COMMIT , or combined with other statements within the same transaction. Atomic DDL is made possible by the introduction of the MySQL data dictionary in MySQL 8.0. In earlier MySQL versions, metadata was stored in metadata files, nontransactional tables, and storage engine- specific dictionaries, which necessitated intermediate commits. Centralized, transactional metadata storage provided by the MySQL data dictionary removed this barrier, making it possible to restructure DDL statement operations to be atomic. The atomic DDL feature is described under the following topics in this section: The atomic DDL feature supports both table and non-table DDL statements. Table-related DDL operations require storage engine support, whereas non-table DDL operations do not. Currently, only the  InnoDB storage engine supports atomic DDL. • INSTALL COMPONENT  and  UNINSTALL COMPONENT  statements. • INSTALL PLUGIN  and  UNINSTALL PLUGIN  statements. The following statements are not supported by the atomic DDL feature: •Table-related DDL statements that involve a storage engine other than  InnoDB . •Account management statements:  CREATE ,  ALTER ,  DROP , and, if applicable,  RENAME  statements for users and roles, as well as  GRANT  and  REVOKE  statements. • CREATE  and  DROP  statements, and, if applicable,  ALTER  statements for stored programs, triggers, views, and loadable functions. •Supported non-table DDL statements include: •Supported table DDL statements include  CREATE ,  ALTER , and  DROP  statements for databases, tablespaces, tables, and indexes, and the  TRUNCATE TABLE  statement. Supported DDL Statements Note •Viewing DDL Logs •Storage Engine Support •Changes in DDL Statement Behavior •Atomic DDL Characteristics •Supported DDL Statements