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

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

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(?, ?)', 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


Как сделать так, чтобы если строки id и count в таблице limits уже были, то они не создавались?

Т.е я когда выполню функцию init_user_db1 раз, то я получаю 1 значение [(2,)] , но если я вызову еще несколько раз эту функцию, то вывод уже будет [(2,), (0,), (0,), (0,), (0,), (0,), (0,)], несмотря на то, что там уже есть [(2,)], мне нужно если там есть значение он больше туда ничего не заносил
  • Вопрос задан
  • 613 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 1
Stalker_RED
@Stalker_RED
UPSERT, это когда делается попытка вставки, и если такая запись уже есть, то она либо обновляется, либо сохраняется старое значение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽