Задать вопрос
  • Телеграм бот перестает работать, пишет ошибка в базе данных. Где ошибка?

    fleshandmolodoy
    @fleshandmolodoy
    для записи нужна такая конструкция:
    users_id = (message.chat.id, 'date')
    Ответ написан
    Комментировать
  • Телеграм бот перестает работать, пишет ошибка в базе данных. Где ошибка?

    Vindicar
    @Vindicar
    RTFM!
    Включи голову и подумай.
    Судя по ошибке, у тебя в таблице users ID пользователя - уникальный ключ.
    Запрос на создание таблицы у тебя не содержит указания ключа, что, к слову, нехорошо. Я полагаю, ты убрал запись о ключе в какой-то момент, но не пересоздал таблицу.
    Ты записываешь в эту таблицу данные о пользователе всякий раз, когда получаешь команду /start.
    Внимание, вопрос: что произойдёт, если пользователь введёт /start ещё раз?
    Прааааавильно, бот попытается создать ещё одну запись для этого пользователя. Что запрещено наличием первичного ключа.

    Для начала ответь себе на вопрос: что тебе нужно сделать в базе, если пользователь ввёл /start ещё раз?
    Ничего? Читай про форму INSERT OR IGNORE, она как раз позволяет молча пропустить запись, если такой первичный ключ уже есть.
    Сообщить пользователю? Тогда сначала проверь в базе наличие записи для этого пользователя, и если она есть - сообщай, если её нет, то вноси в базу.
    Ответ написан
    Комментировать