@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,)], мне нужно если там есть значение он больше туда ничего не заносил
  • Вопрос задан
  • 601 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
UPSERT, это когда делается попытка вставки, и если такая запись уже есть, то она либо обновляется, либо сохраняется старое значение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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