sqlite3.OperationalError: база данных заблокирована - PullRequest
7 голосов
/ 03 апреля 2011

Я пытаюсь вставить все значения списка в мою базу данных sqlite3.Когда я моделирую этот запрос с помощью интерактивного интерпретатора Python, я могу правильно вставить одно значение в БД.Но мой код не работает при использовании итерации:

...
connection=lite.connect(db_name)
cursor=connection.cursor()
for name in match:
         cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,))
connection.commit()
...

error:cursor.execute("""INSERT INTO video_dizi(name) VALUES (?)""",(name,))
sqlite3.OperationalError: database is locked

Есть ли способ решить эту проблему?

Ответы [ 3 ]

10 голосов
/ 03 апреля 2011

У вас есть другое соединение в другом месте вашего кода, которое вы используете, чтобы начать транзакцию, которая все еще активна (не зафиксирована), когда вы пытаетесь зафиксировать операцию, которая завершается неудачей?

1 голос
/ 03 апреля 2011

Поскольку ваша база данных используется другим процессом или соединением. Если вам нужен реальный параллелизм, используйте реальную СУБД.

0 голосов
/ 10 июля 2019

Поскольку эта ошибка может произойти, потому что вы открыли файл site.db или файл базы данных в приложении типа DBbrowser для просмотра в интерактивном интерфейсе базы данных. Просто закройте, чтобы все работало нормально.

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