powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / python и sqlite
4 сообщений из 4, страница 1 из 1
python и sqlite
    #39656592
MaratD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Если в запросе на изменение данных (вставка, обновление записей) в базе использовать конструкцию
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
try:
    c = conn.cursor()
    c.execute('BEGIN EXCLUSIVE TRANSACTION')
    c.execute('UPDATE ...') 
    c.execute('INSERT ...')
    c.execute('COMMIT TRANSACTION')
except:
    c.execute('ROLLBACK TRANSACTION')


то нужно ли в самих командах вставки и обновления использовать алгоритм “OR ROLLBACK”. То есть так
Код: python
1.
2.
    c.execute('UPDATE OR ROLLBACK ...') 
    c.execute('INSERT OR ROLLBACK ...')


При возникновении ошибки изменение не сохранится?
Помогите пожалуйста. Спасибо.
...
Рейтинг: 0 / 0
python и sqlite
    #39657908
Фотография PPA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratD,

думаю не нужно (транзакция должна быть атомарной)
также можно сократить команды ROLLBACK и COMMIT до одного слова.
...
Рейтинг: 0 / 0
python и sqlite
    #39657928
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaratD,

Зависит от того что тебе нужно.

В первом примере (с ловлей исключения), у тебя может произойти исключение в любом месте, не обязательно внутри execute(), но и в любой питоньей команде между обращениями к базе.

А в во втором примере откат будет происходить только при ошибке вставки/обновления. Но ошибки питоньего скрипта на базе не отразятся.

Оба подхода вполне нормальны, но у них разные области.
...
Рейтинг: 0 / 0
python и sqlite
    #39659634
MaratD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается в первом случае (с исключениями) не обязательно внутри execute() использовать ROLLBACK. И если произойдет ошибка вставки/обновления, то откат обязательно произойдет?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / python и sqlite
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]