Могу ли я откатить транзакцию SQLite после ее фиксации? - PullRequest
4 голосов
/ 01 ноября 2010

Есть ли в SQLite способ по существу отменить последнюю транзакцию после ее совершения?

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

Редактировать Могу ли я создать точку сохранения с именем «Отменить» и подождать, пока она не будет отменена, прежде чем начинать следующее действие, или выполнить откат, если мне нужно отменить ее?

Ответы [ 3 ]

2 голосов
/ 01 ноября 2010

Я не уверен, используете ли вы JDBC 3.0.Если вы, то он поддерживает точки сохранения.http://www.ibm.com/developerworks/java/library/j-jdbcnew/

1 голос
/ 01 ноября 2010

Кроме создания оперативного резервного копирования перед вашей транзакцией, я не знаю, что он поддерживает «машину времени» для возврата во времени.

Разве вы не можете поместить некоторую логику приложения в место для записи, достаточной для отмены примененной операции в таблицах журналов аудита?

0 голосов
/ 15 февраля 2011

Я не эксперт по SQLite, но, насколько я пытался, возможно делать точки сохранения только внутри транзакций, но не наоборот.

И AFAIK, читая онлайн-документацию, точки сохранения и транзакции, по сути, одинаковы, различие заключается в стеке транзакций, в которые записаны точки сохранения. Вы можете открыть определенное количество точек сохранения (помня порядок размещения в стеке) и, проверив, что все в порядке, выполнить фиксацию транзакции. Я не знаю, поможет ли это вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...