mysql - “UPDATE WHEN DUPLICATE ELSE INSERT” 当 key 不是 MySql 中的 PRIMARY KEY 时

标签 mysql

当 key 不是时,如何执行“重复 key 更新”

示例:

INSERT INTO customers (`id`,`user_id`, `status`, `category_id`, `date`)
VALUES  ('1','123','test','12','2018-09-08') ON DUPLICATE KEY UPDATE
id=VALUES(id),
status=values(status),
date=values(date);

如果 user_idcategory 都匹配,我想更新表,否则插入新行。

最佳答案

根据评论,唯一索引丢失:

CREATE UNIQUE INDEX user_category ON customers (user_id, category_id)

关于mysql - “UPDATE WHEN DUPLICATE ELSE INSERT” 当 key 不是 MySql 中的 PRIMARY KEY 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52324757/

相关文章:

mysql - SQL - 是否可以查找具有相同分组依据的等于 0 的总和?

php - 如何为以下内容指定 mysql 级联规则

mysql - 如何从两个表中获取相同列值的结果?

php - 函数填充第一个列表框但不填充数据库表中的第二个

php - PHP 事件监听器中的多个回显删除编辑按钮

php - 只有很少的值没有被插入到数据库中

mySQL 计算两个不同表中的相似行

php - 通过选择 php 中的下拉列表选项从数据库中选择数据

mysql - Rails 3 ActiveRecord 从单个表中选择父子递归

Mysql查询修改