настройка Телеграм бота с sqlite3

по видеоуроку пишу телграм бота с sqlite3, но при запуске возникает ошибка неполного ввода (sqlite3.OperationalError: incomplete input), не понимаю что нужно дополнить, как исправить ошибку подскажите пожалуйста.

import sqlite3

bot = telebot.TeleBot('токен бота')

@bot.message_handler(commands=['start'])
def start(message):
    conn = sqlite3.connect('modelsFile.sql')
    cur = conn.cursor()

    cur.execute('CREATE TABLE IF NOT EXISTS models (id int auto_increment primary key, model varchar(150), promt varchar(200)')
    conn.commit()
    cur.close()
    conn.close()

    bot.send_message(message.chat.id, 'Привет, я твой менеджер моделей LoRa и промпту к ним для Stable Diffusion, введи название модели : ')
    bot.register_next_step_handler(message, model_model)

def model_model(message):
    pass


bot.polling(none_stop=True)

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

Автор решения: Савельев Даниил
  1. Неправильный синтаксис в SQL-запросе: в строке, где вы создаете таблицу models, у вас отсутствует закрывающая скобка для определения столбцов.

  2. Использование auto_increment: в SQLite используется AUTOINCREMENT, но его нужно использовать в сочетании с INTEGER PRIMARY KEY. Также в SQLite не нужно указывать auto_increment отдельно.

Вот исправленный код:

import sqlite3
import telebot

bot = telebot.TeleBot('токен бота')


@bot.message_handler(commands=['start'])
def start(message):
    conn = sqlite3.connect('modelsFile.sql')
    cur = conn.cursor()

    # Исправленный SQL-запрос
    cur.execute('CREATE TABLE IF NOT EXISTS models (id INTEGER PRIMARY KEY AUTOINCREMENT, model TEXT, prompt TEXT)')
    conn.commit()
    cur.close()
    conn.close()

    bot.send_message(message.chat.id,
                     'Привет, я твой менеджер моделей LoRa и промпту к ним для Stable Diffusion, введи название модели : ')
    bot.register_next_step_handler(message, model_model)


def model_model(message):
    pass


bot.polling(none_stop=True)
 

P.s. Не стесняйтесь использовать чат GPT для нахождения мелких неисправностей, это намного быстрее.

→ Ссылка