文档章节

查询记录是否存在,不存在即插入,存在即更新

xuguangwu
 xuguangwu
发布于 2017/02/15 22:37
字数 188
阅读 84
收藏 0

很多业务场景需要这样的操作,对数据或sql不做处理的话,需要做两次sql操作,很繁琐。
以下是我所用的三种解决办法,一步解决。

加唯一索引,如果一个字段不行,那就两个字段建立唯一索引。

如果只使用一个主键值
INSERT INTO auto (k, v) VALUES (1, '1-1') ON DUPLICATE KEY UPDATE v=VALUES(v);
相比于replace into,不会更改主键值,不会破坏主键建立的关系,同时只修改需要更新的数据,原有的数据会保存。

replace into

replace into会修改掉原有的值,主键还会增长,不建议使用

© 著作权归作者所有

共有 人打赏支持
xuguangwu
粉丝 3
博文 20
码字总数 13259
作品 0
深圳
程序员
mongodb update 更新操作

db.collection.update(<query>,// 查询条件<update>, // 要更新的值(字段)--赋值表达式 $set{ }) 1,先查询person 中age=20 的数据: 更新name为“ming”,在次查询,age=20的数据,发现只...

Atom_me
2016/05/14
798
0
SQL Server 和 HSQLDB 中使用 merge into 完成 saveOrUpdate

当我们调用 Hibernate 的 saveOrUpdate() 或 JPA 的 save() 方法的 Hibernate 实现时,都会做两步操作:1)按 ID 查询记录是否已存在,2)不存在插入新记录,存在则更新原记录。这种两步操作...

Unmi
06/02
0
0
MongoDB学习笔记(一)--基础

Insert MongoDB在执行插入时,首先会将插入的数据转换成BSON格式。然后MongoDB数据库会对BSON进行解剖,并检查是否存在_id建。 >doc = { } > db.yyd.insert(doc); Query 全部查找 返回除了 ...

老朱教授
2017/10/01
0
0
Mysql中INSERT ... ON DUPLICATE KEY UPDATE的实践

一、前言 在日常业务开发中经常有这样一个场景,首先创建一条记录,然后插入到数据库;如果数据库已经存在同一主键的记录,则执行update操作,如果不存在,则执行insert操作; 最近工作也遇到...

阿里加多
03/23
0
0
Mysql 原生语句中save or update 的各种写法

Mysql 原生语句中save or update 的各种写法 背景   在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。如果使用Hibernate,它...

Tek_Eternal
2015/02/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

技术工坊|如何降低区块链应用的使用门槛(上海)

当区块链技术从专业研究走向市场应用,开发者需要考虑用户的使用场景和使用门槛,例如通过ETH支付gas手续费,或者注册一个16进制的用户名,普通用户都难以接受。 10月20日,HiBlock区块链社区...

HiBlock
13分钟前
0
0
Daemon线程--《Java并发编程的艺术》学习笔记

daemon线程即守护线程 当一个JVM中不存在非Daemon线程时,JVM将会退出 也就是说当非Daemon线程都执行完毕时,java程序也就结束了。 可以通过调用Thread.setDaemon(true)将线程设置为Daemon线...

karma123
19分钟前
0
0
scala类型参数的上界和下界

class Pair[T <: Comparable[T]](val first:T,val second:T) //类型T必须要是Comparable接口的子类(即T是Comparable的下界){ def bigger = if(first.compareTo(second) > 0) first e......

whoisliang
29分钟前
0
0
Vue中路由管理器Vue Router使用介绍(一)

一、在模块编程中安装VueRouter 1.Npm安装vue-router npm install vue-router 2.在main.js中引用并使用VueRouter import Vue from 'vue'import VueRouter from 'vue-router'Vue.use(Vu......

tianma3798
31分钟前
0
0
TypeScript基础入门之声明合并(一)

转发 TypeScript基础入门之声明合并(一) 声明合并 介绍 TypeScript中的一些独特概念描述了类型级别的JavaScript对象的形状。 TypeScript特别独特的一个例子是"声明合并"的概念。 在使用现有J...

durban
45分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部