首页 文章

在重复键上插入UPDATE

提问于
浏览
0

我有一个查询更新表或插入如果该行尚不存在,但由于某种原因它只是插入所有时间 .

这是我的表格结构:

Id (primary) | uid | product_id | quantity

这是我的查询:

INSERT INTO my_table (uid,product_id,quantity) 
    SELECT t1.uid,?,?
    FROM checker t1
    WHERE t1.id = ?
ON DUPLICATE KEY UPDATE
    product_id = ?, quantity = quantity+?

我想要做的是使用 on duplicate key 如果表中已存在 uid + product_id 组合 .

那么有没有办法指定要更新而不是插入的复制类型?

1 回答

  • 1

    没有办法区分发生什么重复 .

    一旦违反任何唯一约束 - 它将执行 ON DUPLICATE KEY UPDATE 部分 .

    对于您的情况,您只需要创建由2个字段组成的唯一复合键: (uid, product_id)

相关问题