精华内容
下载资源
问答
  • Postgresql SQLite 新增和修改是同一个语句 有则更新 无则新增 使用 CONFLICT Postgresql SQLite 新增和修改是同一个语句 有则更新 无则新增 使用 CONFLICT
    INSERT INTO T_表(主键字段a,字段b) VALUES (数据a,数据b) ON CONFLICT (主键字段a) DO UPDATE SET 字段b=数据b"

    展开全文
  • Java之ES之文档有则更新无则新增

    千次阅读 2019-10-09 15:22:24
    与数据库的更新操作类似,es同样也有有则更新无则插入的操作,如下所示: public class ElasticSearchUtils { //则更新,无则插入 public void upsertDemo(TransportClient client) { try { IndexRequest ...

    下面继续来记录和更新ES相关操作:

    与数据库的更新操作类似,es同样也有有则更新无则插入的操作,如下所示:

    public class ElasticSearchUtils {
    	//有则更新,无则插入
    	public void upsertDemo(TransportClient client) {
    		try {
    			IndexRequest indexRequest = new IndexRequest("index", "type", "1")
    				.source(jsonBuilder()
    						.startObject()
    						.field("name", "Joe Smith")
    						.field("gender", "male")
    						.endObject());
    			UpdateRequest updateRequest = new UpdateRequest("index", "type", "1")
    				.doc(jsonBuilder()
    						.startObject()
    						.field("gender", "male")
    						.endObject()
    						).upsert(indexRequest);
    			client.update(updateRequest).get();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		} catch (ExecutionException e) {
    			e.printStackTrace();
    		}
    	}
    }
    
    展开全文
  • 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,把B表的数据插入A表。 1、Merge into的基本语法 MERGE INTO [表名] [表别名] USING ( [查询...

    一、Oracle、Sqlserver数据库:(merge into)

    通过Merge into你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表的数据插入A表。

    1、Merge into的基本语法

    	MERGE INTO [表名] [表别名] 
    	USING ( [查询内容] )[或者像表查询一样的语句] 
    	ON ([条件表达式] AND [...]...) 
    	WHEN MATHED THEN [匹配的update操作] 
    	WHEN NOT MATHED THEN [不匹配的insert操作] 
    

    例:

    	MERGE INTO  UAM_LOCK  A
    	USING (SELECT '123' as CUSTOMERID, 'L' as STATUS_CODE FROM dual) B on (A.CUSTOMERID=B.CUSTOMERID)
    	WHEN MATCHED THEN UPDATE SET A.STATUS-CODE=B.STATUS_CODE
    	WHEN NOT MATCHED THEN  INSERT (A.CUSTOMERID, A.STATUS_CODE) VALUES (B.CUSTOMERID, B.STATUS_CODE )
    

    注意事项:

    Merge Into的原理是,从using 搜出来的结果逐条与on条件匹配,然后决定是update还是Insert。 当USING后面的sql没有查询到数据的时候,Merge Into语句是不会执行update和Insert操作的。

    所以要想让Merge Into正常运行,要保证USING 后面的SELECT有数据,个人喜欢使用DUAL表作为USING后的表,方便自己控制。

    二、Mysql数据库:

    1、REPLACE INTO
    发现重复的先删除再插入,如果记录有多个字段,在插入的时候如果有的字段没有赋值,那么新插入的记录这些字段为空。

    replace into uam_lock(customerid,status_code) select '123','L';
    或
    replace into uam_lock(customerid,status_code) values('123','L');
    

    注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

    2、INSERT INTO ON DUPLICATE KEY UPDATE
    发现重复的是更新操作。在原有记录基础上,更新指定字段内容,其它字段内容保留。

    insert into uam_lock(customerid,status_code) values('123','L') on DUPLICATE KEY UPDATE status_code=‘O’;
    

    注意:要给唯一字段加上索引,类型为:UNIQUE

    3、IGNORE INTO
    判断是否存在,存在不插入,否则插入。

    insert ignore into uam_lock(customerid,status_code) values('123','L');
    

    当执行这条sql语句时,如果数据库中已经存在相同的记录,则数据库会忽略该条命令,返回的受影响的行数为0。

    展开全文
  •  我们操作数据的时候时候需要根据某一字段实现就修改此条数据,没有就新增此条数据 实现:  INSERT INTO test_qiaorui (ID,NAME,sex,email,city,DATE,hobby,DESCRIBE) VALUES ('1','postgre','女','123','...

    说明:

            我们操作数据的时候有时候需要根据某一字段实现有就修改此条数据,没有就新增此条数据

    实现:   

    INSERT INTO test_qiaorui (ID,NAME,sex,email,city,DATE,hobby,DESCRIBE) VALUES
    ('1','postgre','女','123','bj','2018-01-10 22:00:00','zq','nihao') ON conflict (id) DO
    UPDATE SET name = 'pg',sex = '女',email = '123',city = 'bj',DATE = '2018-01-10 22:00:00',
    hobby = 'zq',DESCRIBE = 'nihao'
    	

    根据id判断无则新增有则修改,需要注意的是判断字段一定要设置唯一索引否则报错

    展开全文
  • 针对单行数据则修改无则新增 本案例的建表语句是: -- auto-generated definition create table contact_type ( sid varchar(50) not null primary key, name varchar(50) default '' null, status int ...
  • 一张表,id为主键,现在在数据库中插入数据,如果存在firstName、lastName相同的数据,则更新count,不存在这插入数据。 例如:已数据中,已存在 firstName 为 Jack,lastName 为 Li 的数据,则原有数据不新增,只...
  • SQL server 实现有则更新则插入

    千次阅读 2016-08-12 16:31:39
    数据库中对应的数据记录则更新数据,对应的数据记录则插入数据。 if exists(select saleId from Photo_Sale_Picture where saleId = @saleId) UPDATE Photo_Sale_Picture SET SaleId=@saleId,UsingRange=@...
  • 某些场景会这样的需求:记录则插入,记录则更新。例如:新增用户,以身份证号码作为唯一身份标识,插入时若先查询是否存在记录再决定插入还是更新,在高并发情况下必然存在问题。本文提供三种解决方案。 方案...
  • Oracle语句实现有则更新无则插入

    千次阅读 2018-03-12 09:50:08
    在使用Oracle数据库之前,我是用的是Mysql数据库,知道Mysql数据库实现有则更新无则更新,是一条语句的, 但是Oracle实现此功能却一时让我顿感无措,但是我坚信oracle数据库一定会提供此类语句。 于是。。。1...
  • Mybatis 有则更新则插入的实现

    万次阅读 2018-10-08 16:07:16
    想插入数据库一条记录,如果这条记录的主键或者Unique键已存在,则更新这条记录,如果主键或Unique键不存在,则新增这条记录。用Mybatis实现。网上有些方法说用replace into,但是mybatis是不支持的。所以,必须使用...
  • mybatis有则更新无则插入

    千次阅读 2019-12-14 19:46:12
    前提条件必须要主键或者唯一索引 #{id,jdbcType=INTEGER} <insert id="addArticle" parameterType="com.rui.mall.db.bean.Article"> INSERT into article_manage (id,titl...
  • peewee 实现 有则更新则插入.

    千次阅读 2019-11-07 15:19:01
    背景:想用peewee实现 mysql数据库 有则更新则插入.几番查找,发现在官方文档中.下图: 在本地的数据库测试了,以下是测试语句及结果: 表结构 class Practice(Model): id = AutoField(primary_key=True) ...
  • 1、mybatis批量更新使用foreach 代码如下: @Update("&lt;script&gt;" + "&lt;foreach collection='list' separator=';' item='user' &gt;" + "UPDATE users SET &...
  • 一、批量新增 dao层: boolean insertBatchDelegation(List<ActDelegationEntity> list); xml层: <insert id="insertBatchDelegation" parameterType="ja...
  • <insert id="insertUser" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.foreigners.entity.User"> insert INTO t_user(openId, name...
  • /** * 批量插入或修改 * @param cos * @return */ @Insert("<script>"+ "<foreach collection='cos' item='co' separator=';'>"+ "insert into bloc_alloca...
  • 如果在Oracle 表value_dazong_index_mom_day(在table里存起来了),它所有字段值的更新依据表DZWWW_MOM(根据原始数据建立起的视图),这里假设这两张表的结构完全一样(事实上可以不一样,只需第一个表要更新的...
  • mysql动态批量插入(有则更新无则插入) 在之前的文章中已经写过批量插入,这个再专门写一遍; <insert id="batchAddRecomprodInto" parameterType="java.util.List" > replace into td_cc_recomprod(act_...
  • 这时候就两条插入的数据; 如何解 举一个具体的例子啊 A、B、C三个人向数据库插入张三这个用户 A、B新增-----调用save(){ if(没有张三) 插入张三 } C导入----import(){ if(没有张三) 插入张三 }
  • 我们可能在业务中会遇到增加一条记录,如果改记录存在的话,就更新里面的一些字段,如果没有查询 1,增加唯一的约束(如果不是通过id) alter table realtime_inventory add unique(sku,store_id); //建立唯一...
  • Solr 新增更新、删除索引

    千次阅读 2019-10-25 09:07:07
    [索引中无则新增,有则更新] 第一种方式:在doc标签和field标签中增加权重(boost),增加权重后,可以在搜索的时候做权重过滤。   1 2 3 4 <...
  • <insert id="方法名"> <selectKey keyProperty="count" resultType="java.lang.Integer" order="BEFORE"> select count(1) from表名 where user_i...
  • mybatis 批量新增更新ORACLE已数据

    千次阅读 2018-02-08 14:57:19
    需求要求进行批量处理的时候无则新增有则更新。 一开始使用的是调用存储过程的方法,在过程中处理这样的操作,但是当数据量过大时事务管理会成为性能的瓶颈。几十上百万的数据频繁更新的时候性能就无法达到要求了...
  • 该存储过程实现了查询tb_rtudata_avg表的最大值,然后查询tb_rtudata_max表,如果该表中包含这条记录则更新该条记录,没有则添加
  • mybatis+mysql (有则更新则插入)

    千次阅读 2019-01-24 09:27:29
    -- 批量更新 --> insert into virtualMachines ( `name`,`status`,`state`,`hostCPU`,`hostMemory`,`provisionedSpace`,`usedSpace`,`ip`,`isFtpInstalled` ) values separator=","> ( #{...
  • update bank_credit SET batch_no = '196139', tx_date = '20180829', tx_time = '172000', seq_no = '704424', `status` = 1, update_time = 1535534400 WHERE STATUS=0;
  • mysql 存在则更新,不存在则插入

    千次阅读 2018-11-23 15:31:49
    即: 存在在则更新,不存在则新增. # 语句如下: insert into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y') on duplicate key update dr=values(dr); /*解析: test_tbl 是表名 (id, dr) 是该的两个字段, (1.....
  • 如果某一操作包含大量的T-SQL语句代码,分别被多次执行,那么存储过程要比批处理的执行速度快得多。因为存储过程是预编译的,在首次运行一个...数据库中便会根据相应的操作进行更新或者插入,并返回值0或1
  • 主要用到findOneAndUpdate let query = { /* query */ }; let update = {expire: new Date()}; let options = {upsert: true, new: true, setDefaultsOnInsert: true}; let model = await Model.findOneAndUpdate...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 205,830
精华内容 82,332
关键字:

无则新增有则更新