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

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

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