以下陈述怎么了?
我正在尝试将数据插入到我的表中但是如果有重复的条目则更新它 - 当我运行它时,我收到以下错误:
(1064,“您的SQL语法有错误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 'updat e temp set impressions = impressions + 1,clicks = clicks附近 + 0,ctr =(第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
更新:删除了重复的更新 - 仍然存在错误。
答案 0 :(得分:1)
您的陈述应该与
不同on duplicate key update update temp set impressions...
但是
on duplicate key update impressions=...
答案 1 :(得分:0)
您的陈述中包含 update 这两个字,删除一个可能会解决问题: - )