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. 

Note 

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. 

## Supported DDL Statements 

The atomic DDL feature is described under the following topics in this section: 

•Supported DDL Statements 

•Atomic DDL Characteristics 

•Changes in DDL Statement Behavior 

•Storage Engine Support 

•Viewing DDL Logs 

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. 

•Supported table DDL statements include CREATE , ALTER , and DROP  statements for databases, tablespaces, tables, and indexes, and the TRUNCATE TABLE  statement. 

•Supported non-table DDL statements include: 

• CREATE  and DROP  statements, and, if applicable, ALTER  statements for stored programs, triggers, views, and loadable functions. 

•Account management statements: CREATE , ALTER , DROP , and, if applicable, RENAME  statements for users and roles, as well as GRANT  and REVOKE  statements. 

The following statements are not supported by the atomic DDL feature: 

•Table-related DDL statements that involve a storage engine other than InnoDB . 

• INSTALL PLUGIN  and UNINSTALL PLUGIN  statements. 

• INSTALL COMPONENT  and UNINSTALL COMPONENT  statements. 

