MySQL - 重复键不更新表

时间:2017-10-12 02:57:18

标签: mysql

我有一个表定义为:

----------------------------------------
|  a (VARCHAR)  | b (DATE) |  c (INT)  |
----------------------------------------

将INDEX定义为:

CREATE INDEX table_index ON table (a,b);

运行以下代码时:

INSERT INTO test_table
        (a,b,c)
    VALUES
        ('test', '2017-10-06 08:00:00', 1)
    ON DUPLICATE KEY UPDATE
        c = c + VALUES(c);

每次调用上述查询时都会创建一个新行,我希望在表上执行更新操作。即如果列a和b相同,我希望c更新,否则创建一个新行。

为什么ON DUPLICATE KEY不起作用?

2 个答案:

答案 0 :(得分:1)

如果您将列c 标记为主键唯一键,则您的查询不会每次都插入新记录。

DUPLICATE KEY 找到重复的主键或唯一键,如果是,则它将更新相同的记录,否则创建新的键。

答案 1 :(得分:0)

您的查询在我这里工作得非常好。

enter image description here