Mysql 在重复密钥更新时插入。。。。。有两个关键字段
我有一个有三个字段的表 第一场 第二场 第三场Mysql 在重复密钥更新时插入。。。。。有两个关键字段,mysql,Mysql,我有一个有三个字段的表 第一场 第二场 第三场 我想进行插入/更新,但我需要检查(field_one,field_two)组合是否已经存在于数据库中,而不是检查其中一个关键字段是否已经存在,如果已经存在,则进行更新而不是插入 有多种方法可以做到这一点。最简单的可能是这样的: 获取现有字段 插入所有不在现有字段中的字段 更新其余的 在表上创建您的索引名的唯一索引(字段1、字段2)()并使用 MySQL将自动完成其余的操作。我觉得您可以使用替换为或进行重复密钥更新,只要这两个字段上有唯一的约束 M
我想进行插入/更新,但我需要检查(field_one,field_two)组合是否已经存在于数据库中,而不是检查其中一个关键字段是否已经存在,如果已经存在,则进行更新而不是插入 有多种方法可以做到这一点。最简单的可能是这样的:
- 获取现有字段
- 插入所有不在现有字段中的字段
- 更新其余的
在表上创建您的索引名的唯一索引(字段1、字段2)
()并使用
MySQL将自动完成其余的操作。我觉得您可以使用
替换为或进行重复密钥更新
,只要这两个字段上有唯一的约束
MySql不支持MERGE语句,因此需要一个唯一的约束或一些外部代码。障碍是什么?您刚刚在问题标题中写下了需要使用的内容。@Alin Purcaru:唉,关于多列索引的知识还是有点不常见(我知道当我被显示时,我说了“你能做到吗?!”)。警告:重复时,替换的行为类似于删除+插入,而插入。。。更新的行为类似于更新(对于触发器、自动递增字段和默认值很重要)