我正在电报和数据库(sqlite3)中制作一个机器人。该机器人的工作原理是,当用户启动机器人时,他在电报中的用户名和其他信息将被添加到数据库中。问题是,当多次运行机器人时,同一用户会被多次添加到数据库中。我想实现它,以便如果用户已经存在于数据库中,那么他会收到消息:“您好,您的数据仍然是最新的吗?'用户数据'”。我尝试了 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)
要识别用户,请使用来自 Telegram 服务器的 ID。如果具有相同 ID 的用户已存在,则显示欢迎消息;如果不存在,则向数据库添加新用户。
那么,要检查数据库中是否存在用户,请使用如下查询
接下来,添加条件和验证。如果用户存在,则主动更新数据。如果没有用户,则创建一个新用户。