以下语句有什么问题?

我正在尝试将数据插入到我的表中,但是如果有重复的条目则更新它-运行它时,出现以下错误:


  (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/

10-12 21:24