INSERT INTO ... ON DUPLICATE KEY UPDATE似乎不起作用

时间:2014-07-11 21:26:30

标签: python mysql sql

所以,我一直在尝试创建一个根本不应该变硬的python web应用程序,但我似乎做错了。

**def insert(self, user, points):
    self.cur.execute('INSERT INTO points (user, points) VALUES ("' + user + '",' + str(points) + ') ON DUPLICATE KEY UPDATE points=points+' + str(points))

    self.db.commit()**

我正在使用的源代码,我试图插入一个用户+他们的"点"在表格中,关于这一切的所有内容似乎完全正常,但它并没有更新,相反,当我调用insert()时,它为一个新用户提供1点。

    User    Points
[name]          1
[same name]     1

如何让UPDATE正常工作?

1 个答案:

答案 0 :(得分:1)

这是您的查询:

INSERT INTO points(user, points)
    VALUES ("' + user + '",' + str(points) + ')
    ON DUPLICATE KEY UPDATE points=points+' + str(points);

为了使其正常工作,您需要桌面上的唯一键。您希望user唯一的方法是唯一的,所以:

create unique index idx_points_user on points(user)

points(user, points)上的索引不会做你想做的事。