Задать вопрос
@ch1ps01

Ошибка в работа sqlite. Что делать?

if gamep>0:
        cur.execute("UPDATE users SET attempts = attempts - 1 WHERE id = ?", (message.from_user.id,))
        cur.execute('SELECT attempts FROM users WHERE id = ?', (message.from_user.id,))
        gamep = cur.fetchone()[0]
        con.commit()

При условии, что попыток больше нуля, в таблицу базы данных отправляется запрос о уменьшении количества попыток, а так же переменная попыток применяет значение с базы данных, но случилась проблема, по умолчанию у игрока 2 попытки, при первой попытке всё проходит нормально, а вот после второй возникает ошибка:

cur.execute("UPDATE users SET attempts = attempts - 1 WHERE id = ?", (message.from_user.id,))
sqlite3.IntegrityError: UNIQUE constraint failed: users.attempts

Что делать?
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    SMM-продвижение в Телеграме
    1 месяц
    Далее
  • Бруноям
    Продвижение в Telegram
    1 месяц
    Далее
  • GB (GeekBrains)
    Профессия SMM-специалист 3.0
    8 месяцев
    Далее
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Очевидно убрать ограничение уникальности с поля попыток.
Ответ написан
Комментировать
@szjyakgf
attempts при изменении
cur.execute("UPDATE users SET attempts = attempts - 1 WHERE id = ?", (message.from_user.id,))
совпало с другим значением. А так как attempts уникальный стоит то и ошибку получаете
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы