Я пытаюсь написать два процесса с использованием python, которым требуется доступ к той же таблице базы данных sqlite. Один из процессов обновляет таблицу, вставляя новые данные, а другой процесс извлекает информацию из той же таблицы. Однако, когда второй второй процесс запускает запрос выбора, база данных уже заблокирована, и я получаю «Операционная память: база данных заблокирована». Ниже приведен код для обоих процессов. Цените любую помощьНесколько соединений python с одним и тем же sqlite Таблица базы данных
process : 1
------------
while True:
print "Updating"
try:
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute('PRAGMA journal_mode = WAL')
c.executemany('INSERT INTO test_table VALUES (?,?,?,?,?)', insertdata)
conn.commit()
conn.close()
except:
pass
time.sleep(60)
process : 2
------------
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("select * from test_table where id='{}' and date = '{}' order by time desc".format(recv_data,datetime.datetime.now().date().isoformat()))
data= c.fetchall()
conn.close()
Приведенная выше ссылка предполагает, что возможно несколько соединений в sqlite. Однако он не предлагает, как это сделать.
Дополнительная информация здесь: http://stackoverflow.com/questions/5102027/can-sqlite-support-multiple-user – Richard
Ссылка, приведенная выше, позволяет предположить, что возможно несколько соединений в sqlite. Однако он не предлагает, как это сделать. – Learner
Я пробовал свой код: записывал каждые 5 секунд, каждый раз каждые 0,1 секунды (python 3.4.2, sqlite 3.8.10.2) и не мог воспроизвести ваше сообщение об ошибке - возможно, у вас есть . – Richard