MySQL - 重复键不更新表

标签 mysql

我有一个表定义为:

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

索引定义为:

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 不起作用?

最佳答案

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

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

关于MySQL - 重复键不更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46700687/

相关文章:

php - 我的 PHP 脚本如何判断服务器是否繁忙?

mysql - SQL获取与另一个产品具有更多共同属性的产品

php - 我的 sql select 语句结果不正确

php - 在没有定义排序规则的情况下订购 MySQL 字符串结果?

php - 如何处理mysql数据库中的多个用户

php - 在 PHP CodeIgniter foreach 循环中从数据库中提取和更新数据

java - mySQL 与 javascript 的连接

php - MySQL 查询其中 x = 任何内容

mysql - 是否可以有一个始终等于另一个的 MYSQL 字段?

mysql - 需要帮助查询关系表中未使用的 ID