Зачем нам нужен connector.commit () после выполнения? - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть код SQLite / Python, который выполняет команду запроса следующим образом.

def queryDB(self, command_):_
    self.cursor.execute(command_)
    self.connector.commit() # <---- ???
    ...

это работает довольно хорошо, но у меня есть несколько вопросов.

  • Зачем требуется connector.commit ()? Что это делает?
  • Что делает cursor.execute ()?

1 Ответ

2 голосов
/ 10 сентября 2010

За этот сайт: http://www.amk.ca/python/writing/DB-API.html

"Для баз данных, поддерживающих транзакции, интерфейс Python автоматически запускает транзакцию при создании курсора. Метод commit () фиксирует обновления, сделанные с помощью этого курсора, а метод rollback () отбрасывает их. Каждый метод затем запускает новая транзакция. Некоторые базы данных не имеют транзакций, но просто применяют все изменения по мере их выполнения. В этих базах данных commit () ничего не делает, но вы все равно должны вызывать его, чтобы быть совместимым с теми базами данных, которые поддерживают транзакции . "

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