Я пишу прототип приложения. В настоящее время некоторые вещи терпят неудачу, такие как вставка уникального столбца. В этом случае я хотел бы отменить все, что я сделал. Как мне это сделать? Я также замечаю, что в sqlite мне нужно зафиксировать данные, на C#, похоже, это делается автоматически, что заставляет меня подозревать, что есть опция автоматического отката?транзакционный sqlite? в C#
ответ
Откат: Похоже, что вы ищете является текст команды «INSERT OR ROLLBACK ...»
Сделка: SQLite автоматически помещает каждую команду в своей собственной транзакции, если вы специально не оговорено, когда начать , EDIT: TML объясняет эту часть немного более глубоко в своем ответе
пример явного открытия/совершение сделки является:
using (DbTransaction dbTrans = myDBConnection.BeginTransaction())
{
using (DbCommand cmd = myDBConnection.CreateCommand())
{
...
}
dbTrans.Commit();
}
SQLite.org говорит:
Изменения в замок и управления параллелизмом в SQLite версии 3 также ввести некоторые тонкие изменения в образом транзакции работают на уровне языка SQL . По умолчанию SQLite версии 3 работает в автоматическом режиме. В режиме autocommit все изменения в базе данных фиксируются, как только все операции связаны с текущим подключением базы данных .
Команда SQL "BEGIN TRANSACTION" (Сделка необязательное ключевое слово) используются для отбора SQLite из режима автоматической фиксации. Обратите внимание, что команда BEGIN не получает никаких блокировок в базе данных . После команды BEGIN блокировка SHARED будет получена, когда выполняется первый оператор SELECT 10. A ЗАПИСЬ блокировки будет получена, когда выполняется инструкция INSERT, UPDATE или DELETE . Никакой ЭКСКЛЮЗИВ блокировка сохраняется до тех пор, пока кеш памяти не заполнится и должен быть разряжен на или до момента совершения транзакции . Таким образом, система задерживает блокировку доступа для чтения до файла файла до последнего возможного момента .
- 1. транзакционный и не транзакционный msmq
- 2. транзакционный счетчик в GAE
- 3. Транзакционный посредник в wso2esb 4.8.0
- 4. Реализовать транзакционный аспект в Scala
- 5. Camel RabbitMq транзакционный потребитель
- 6. R: увеличить транзакционный участок
- 7. PHP Необходим транзакционный sql?
- 8. Сериализуемый транзакционный тупик
- 9. Программный транзакционный АОП?
- 10. Отсутствует транзакционный EntityManager;
- 11. Транзакционный исполнитель с повторением?
- 12. Как открыть транзакционный файл Windows 7 в C#
- 13. Scala транзакционный блок для понимания
- 14. Динамически активировать транзакционный ключ authorize.net?
- 15. Весенний транзакционный метод получает откат, даже если исключение попадает в не транзакционный метод или в контроллер
- 16. Транзакционный блок | Spark SQL, rdd
- 17. Magento - Получить транзакционный Переменный Email
- 18. Весенний транзакционный пакет-частный метод
- 19. PostgreSQL транзакционный DDL и to_regclass
- 20. Создайте «транзакционный обработчик» умный контракт
- 21. транзакционный файл append на окнах
- 22. Что такое «транзакционный» сервис Grails?
- 23. JPA сохраняющийся транзакционный откат java.lang.NoClassDefFoundError
- 24. Возможно ли повторить транзакционный тупик в Clojure?
- 25. TransactionRequiredException: транзакционный EntityManager недоступен в методе @Transactional
- 26. Многопоточность в C# sqlite
- 27. Общие сведения о транзакциях Spring. Что происходит, когда транзакционный метод вызывает другой транзакционный метод?
- 28. Является ли этот транзакционный подход REST-ful?
- 29. Многопоточный код JMS: CLIENT_ACKNOWLEDGE или транзакционный сеанс
- 30. NHibernate, транзакционный откат и версия сущности
да, SQLLite действительно заставляет вас использовать «транзакционные» запросы вместо плохая привычка посылать их один за другим. – djangofan