문제 설명
데이터베이스 값이 이미 존재하는지 확인하는 방법 (how to check if databases values are already exists)
저는 사용자가 보내는 메시지의 양을 계산하는 디스코드 봇을 만들고 있습니다. 저는 처음에 사용자 ID와 길드 ID가 이미 삽입되었는지 확인하고 싶습니다. 왜냐하면 내가 실행할 때 동일한 길드 ID와 사용자 ID를 복제하여 메시지를 보냅니다. 어떻게 해결할 수 있습니까?
이것은 내 코드입니다:
@client.event
async def on_message(message):
sql = ("INSERT INTO citizens (guild_id, user_id) VALUES (%s, %s)")
val = (message.guild.id, message.author.id)
mycursor.execute(sql, val)
mydb.commit()
참조 솔루션
방법 1:
You can have an unique constraint on guild_id, user_id
and add try catch on mycursor.execute(sql, val)
.
방법 2:
You could start with a query checking in your database if the values already exist and then perform an update of the existing values.
(by Muntadher、Shantanu、Mattias)