有一个程序可以接收球员名单和结果。然后尝试将它们添加到SQL数据库中。如果球员的名字已经在名单上,我希望它通过将那里的当前分数添加到存储的分数来更新那里的分数。我试图通过使用ON DUPLICATE KEY UPDATE语句来实现这一点,但我不确定如何告诉它使用该值。这是我的密码
from mysql.connector.cursor import MySQLCursorPrepared
print(playerNames ,playerScore )
try:
#MariaDB Connection
con = mysql.connector.connect(port=5004,user='root',password='password',host='localhost',database='scoreboard')
records_to_insert = [ (playerNames[0],playerScore[0]) ,
(playerNames[1],playerScore[1]),
(playerNames[2],playerScore[2]) ,
(playerNames[3],playerScore[3])
]
sql_insert_query = " INSERT INTO results (Player, Score) VALUES (%s,%s) ON DUPLICATE KEY UPDATE Score = VALUES(Score) + %s; "
myCursor = con.cursor()
myCursor.executemany(sql_insert_query, records_to_insert)
con.commit()
我知道问题在于使用“=VALUES(Score)+%s”,但我不知道如何告诉它我想在那里使用什么值。如有任何建议,将不胜感激
您可以简单地使用以下表达式:
注:
Player
上有一个唯一的索引(或者更好的是,它是主键)李>Score
声明为NOT NULL
,以确保它始终具有合理的值李>相关问题 更多 >
编程相关推荐