仅更新python最后一条记录
我是一个python新手,由于某些原因,下面的更新无法工作 我所期望的是,它使用API pull进行更新,当我使用print时,它会准确地显示我所期望的5条记录。这是两个单独的XML文件,随后进行处理,总共包含这5条记录。一个XML有3行,另2行 char01仅更新python最后一条记录,python,sql-server,insert,pyodbc,Python,Sql Server,Insert,Pyodbc,我是一个python新手,由于某些原因,下面的更新无法工作 我所期望的是,它使用API pull进行更新,当我使用print时,它会准确地显示我所期望的5条记录。这是两个单独的XML文件,随后进行处理,总共包含这5条记录。一个XML有3行,另2行 char01 char02 char03 char04 char05 该代码使用了一个URL,该URL需要填充一个kyeID和一个vCode。keyID和vCode存储在一个表中。这一切都很好。当我打印时,它会打印5条不同的记录 现在它真正做的是,当它
char02
char03
char04
char05 该代码使用了一个URL,该URL需要填充一个kyeID和一个vCode。keyID和vCode存储在一个表中。这一切都很好。当我打印时,它会打印5条不同的记录 现在它真正做的是,当它将其更新为SQL时,只插入最后一条记录5次。我不知道这是怎么发生的。但是,当我插入时,它工作得非常好 数据库中的最终结果是最后记录5次: char05
char05
char05
char05
char05
这次更新我做错了什么 呼叫应类似于:
cursor.execute("update characters set characterName = ?, characterID = ?, corporationName =?, corporationID = ?, allianceID = ?, allianceName = ?, factionID = ?, factionName =? where keyID = ? and vCode = ?;", (character.name, character.characterID, character.corporationName, character.corporationID, character.allianceID, character.allianceName, character.factionID, character.factionName, row.keyID, row.vCode))
只是善意地提醒您错过了where子句。您正在运行一个没有where的更新,因此所有行都将被更新。谢谢,这很有效。我用下面的例子来解释。谢谢。这极大地帮助我找到了一个现在可行的解决方案。
cursor.execute("update characters set characterName = ?, characterID = ?, corporationName =?, corporationID = ?, allianceID = ?, allianceName = ?, factionID = ?, factionName =? where keyID = ? and vCode = ?;", (character.name, character.characterID, character.corporationName, character.corporationID, character.allianceID, character.allianceName, character.factionID, character.factionName, row.keyID, row.vCode))