Я пытаюсь написать эквивалент механизма эволюции / отката модели данных Rails с использованием Spring Jdbc.
Spring Jdbc транзакция insert/replace
работает очень хорошо (DataSourceTransactionManager с PROPAGATION_REQUIRED в InnoDB mysql 5):
// Transaction begins
getJdbcTemplate().execute("replace into aTable ...");
getJdbcTemplate().execute("wrong request");
getJdbcTemplate().execute("replace into aTable ...");
// none are commited
, но alter
нет:
// Transaction begins
getJdbcTemplate().execute("alter table aTable add column `columnForTest` ...");
getJdbcTemplate().execute("wrong request");
getJdbcTemplate().execute("alter table aTable add column `columnForTest` ...");
// the first alter is commited
Есть ли способ достичь атомарности (поведение "все или ничего") с alter
?
Заранее спасибо