SQlite - зачем мне команда commit - PullRequest
0 голосов
/ 12 апреля 2019

Я использую python (моя IDE - pycharm) и новичок в SQlite. Я прочитал, что я должен использовать коммит, чтобы сохранить данные или изменения, иначе ни один из них не будет сохранен в таблице. Я использую простой код для создания таблицы в базе данных без фиксации, определения заголовков и закрытия файла базы данных. Используя DB_Browser, я открываю файл и вижу, что он обновлен до того, что я только что сделал. Тогда мой вопрос: зачем мне команда commit?

import sqlite3
from sqlite3 import Error


# Connecting SQLite to the Database
def create_connection(db_file):
    """ create a database connection to a SQLite database """
    try:
        # Creates or opens a file called mydb with a SQLite3 DB
        db = sqlite3.connect(db_file)
        # Get a cursor object
        cursor = db.cursor()
        # Check if table users does not exist and create it
        cursor.execute('''CREATE TABLE IF NOT EXISTS
                              users(id INTEGER PRIMARY KEY, name TEXT, phone TEXT, email TEXT unique, password TEXT)''')
    except Error as e:
        # Roll back any change if something goes wrong
        db.rollback()
        raise e
    finally:
        # Close the db connection
        db.close()

fname = "mydb.db"
create_connection(fname)

Ответы [ 2 ]

0 голосов
/ 13 апреля 2019

Видимо, с эта ссылка

По умолчанию SQLite находится в режиме автоматической фиксации.

Спасибо Ричарду за указание на эту ссылку.

0 голосов
/ 12 апреля 2019
commit()

Этот метод фиксирует текущую транзакцию.Если вы не вызываете этот метод, все, что вы сделали со времени последнего вызова commit (), не будет видно из других соединений с базой данных.Если вам интересно, почему вы не видите данные, которые вы записали в базу данных, убедитесь, что вы не забыли вызвать этот метод

https://docs.python.org/2/library/sqlite3.html Пожалуйста, ознакомьтесь с документацией, которую вынайти ответ 90% времени.

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