Как механизмы хранения, такие как InnoDB, достигают ACID для оператора DDL. В операторе DDL, таком как CREATE TABLE ..., должны быть созданы некоторые промежуточные файлы / каталоги, и если какая-либо операция неожиданно завершится неудачно, эти файлы необходимо очистить. Таким образом, механизм хранения должен запомнить, какие файлы / каталоги они создали и очистить (хотя процесс очистки также может завершиться неудачно ...). Я предполагаю, что они используют для этого ведение журнала (Write Ahead Logging). Но может ли кто-нибудь предоставить для этого простой автономный протокол?
До MySQL 8.0 по существу не было ACID для операторов DDL. «Словарь данных» 8.0 это радикально меняет.






Они этого не делают. «Некоторые операторы нельзя откатить. Как правило, к ним относятся операторы языка определения данных (DDL), например, те, которые создают или удаляют базы данных, те, которые создают, удаляют или изменяют таблицы или хранимые процедуры». Источник Однако другие СУБД поддерживают DDL в транзакциях.