@Tayrus0

Как защитить таблицу от создание дубликатов?

С помощью этой функции я ввожу данные в таблицу
def init_user_db(con, users):
    cursorObj = con.cursor()
    
    for x in users:
        limits_values = (x, 0)
        cursorObj.execute('INSERT INTO limits(id, count) VALUES(?, ?) ON CONFLICT DO NOTHING', limits_values)
    
    con.commit()


Через эту функцию я смотрю значения
def sql_counts_checker(con, message):
    cursorObj = con.cursor()    
    cursorObj.execute(f'SELECT count FROM limits WHERE id = {message.chat.id}')
    
    rows = cursorObj.fetchall()
    print(rows)
    count = rows[0][0]

    con.commit()

    return count


Когда я выполню функцию init_user_dbнесколько раз, то в выводе ( print(rows) ) я получу дубликаты [(2,), (0,), (0,), (0,), (0,), (0,), (0,)] хотя я указал ON CONFLICT DO NOTHING почему дубликаты создаются все равно? Как это исправить (с примерами кода, пожалуйста)
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
так конфликта же нет )) вы ж unique не указали
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@anerev
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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