Как сделать так, что бы пользователи не добавлялись в базу данных sqlite3 неограниченное кол-во раз?
Делаю бота в telegram и базой данных (sqlite3). Бот работает по принципу, что когда пользователь запускает бота, то его username из telegram и другая информация добавляется в базу данных. Проблема в том, что при нескольких запусках бота один и тот же пользователь добавляется в базу данных несколько раз. Я бы хотел реализовать так, что если пользователь уже присутствует в базе данных, то он получает сообщение: "Здравствуйте, ваши данные ещё актуальны? 'данные пользователя'". Пробовал функцию fetchcall(), но она работает криво, мне не подошло. Какие ещё есть способы решения проблемы?
**Вот функция внесения данных в таблицу: **
def insertIntoTable(path, tableName, username, city):
with sql.connect(path) as db:
cursor = db.cursor()
translateCity = translateCityFromRusToEng.translate(city)
query = f"""INSERT INTO {tableName} (Username, city) VALUES ('{username}', '{translateCity}')"""
cursor.execute(query)
Ответы (1 шт):
Для идентификации пользователя используйте ID, который приходит с сервера Telegram. Если пользователь с таким ID уже существует, то выдавать приветственное сообщение, если нет -- добавлять нового пользователя в БД.
Ну а чтобы проверить наличие пользователя в БД, используйте запрос вида
SELECT * FROM users WHERE id={user_id}
Дальше добавьте условия и проверку. Если пользователь существует, то предложить актуализировать данные. Если пользователя нет, то создать нового.