А вы читали эту статью? Похоже никаким ACID в InnoDB (MySQL) и не пахнет.

MySQL innodb transaction

http://www.linux.org.ru/forum/development/4275772

Конечно же, можно сделать откат, но как его правильно вписать в саму транзакцию, и заставить сработать во время сбоя на стороне MySQL сервера без участия внешних скриптов?
Пока в "транзакциях" InnoDB я вижу только, возможность нормально блокировать множественные записи. А где же эта пресловутая первая буква "А" в аббревиатуре ACID - Atomicity — Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.

Примечание:
Во время сбоя ведь, все скрипты, допустим, остановились и что они выполняли и что должны были выполнить, уже не известно.

Примечание:
"Что касается сбоя клиентской части, когда "все скрипты остановились", то тогда, очевидно, также будет разорвано и соединение с сервером, и транзакция, само собой, автоматически откатится полностью" - это очень хорошая новость, если это так. А можно ссылку в документацию, где это написано?
Ответы:
Ну да, это документированное поведение: "Error handling in InnoDB is not always the same as specified in the SQL standard." Это просто надо иметь в виду при разработке. Подозреваю, что в очень многих ситуациях именно такое поведение является предпочтительным. При этом у программиста всегда остается возможность отследить эту ситуацию и таки откатить всю транзакцию при необходимости (см. @@error_count или DECLARE HANDLER в случае хранимых процедур),
Так, к слову, в этом плане MSSQL чуть удобнее, там желаемое поведение сервера в таких случаях можно задать явным образом. Однако сам факт, что подобный выбор есть и там, говорит о том, что такое поведение востребовано.
> А можно ссылку в документацию


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.