以下语句有什么问题?
我正在尝试将数据插入到我的表中,但是如果有重复的条目则更新它-运行它时,出现以下错误:
(1064,“您的SQL语法有误;请查看
对应于您的MySQL服务器版本以使用正确的语法
接近更新的临时展示次数=展示次数+ 1,点击次数=点击次数
+ 0,点击率=(第1行的ctr +')
def insert_or_update_new(self, profile_id, landing_page, keyword, position, impressions, clicks, ctr):
try:
self.cursor.execute('''insert into temp (profile_id, landing_page, keyword, position, impressions, clicks, ctr) values (%s, %s, %s, %s, %s, %s, %s) on duplicate key update temp set impressions = impressions + %s, clicks = clicks + %s, ctr = (ctr + %s / 2)''', (profile_id, landing_page, keyword, position, impressions, clicks, ctr, impressions, clicks, ctr))
self.db.commit()
except Exception as e:
self.db.rollback()
# Rollback in case there is any error
return e
更新:删除重复的更新-错误仍然存在。
最佳答案
您的陈述看起来不像
on duplicate key update update temp set impressions...
但
on duplicate key update impressions=...
关于python - 重复键上插入/更新的MySQL错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41110089/