При работе с БД Ошибка: SQLite objects created in a thread can only be used in that same thread

Я не могу разобраться как работать с БД. Постоянно какие-то ошибки и я не понимаю, в чем они.

Кому не сложно, сделайте так, чтоб создавалась БД SQLite3 с полями Id и user_id, куда при вводе команды start в user_id добавлялось значение переменной user_id.

import telebot
import config
import sqlite3
#from telebot import apihelper

#apihelper.proxy = {'http':'https://161.35.78.7:3128'}

bot = telebot.TeleBot(config.TOKEN)

@bot.message_handler(commands=['start'])
def start(message):
    user_id = message.from_user.id
    bot.send_message(message.chat.id, user_id )

bot.polling()

UPD: Код:

import telebot
import config
import sqlite3
#from telebot import apihelper

#apihelper.proxy = {'https':'https://51.254.35.77:8080'}

bot = telebot.TeleBot(config.TOKEN)
conn = sqlite3.connect('database.db')
cursor = conn.cursor()

cursor.execute('CREATE TABLE users(id integer PRIMARY KEY, user_id text)')
conn.commit()

@bot.message_handler(commands=['start'])
def start(message):
    user_id = message.from_user.id
    bot.send_message(message.chat.id, "Ваш TELEGRAMM ID = " + str(user_id))
    cursor.execute("INSERT INTO users VALUES(1, 'user_id')")
    conn.commit()

conn.close()
bot.polling()

Ошибка:

cursor.execute("INSERT INTO users VALUES(1, 'user_id')")
sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. 
The object was created in thread id 10396 and this is thread id 8148.

Просто никогда не работал с БД и может быть, что ошибка глупая.


Ответы (1 шт):

Автор решения: MaxU

Попробуйте использовать параметр check_same_thread=False:

conn = sqlite3.connect('database.db', check_same_thread=False)
→ Ссылка