@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

Что делать?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
Очевидно убрать ограничение уникальности с поля попыток.
Ответ написан
Комментировать
@szjyakgf
attempts при изменении
cur.execute("UPDATE users SET attempts = attempts - 1 WHERE id = ?", (message.from_user.id,))
совпало с другим значением. А так как attempts уникальный стоит то и ошибку получаете
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы