文档 首页

insert/upsert

发布日期:2023-03-07
最后更新:2025-07-02 22:45:19
阅读:13,455

根据数据是否存在,判断判断insert或update或忽略,参考【upsert
upsert与insert参数完全一致,是复制的insert
insert支持两种格式

一、根据值

  1. service.insert(DataRow/DataSet) 
     如果是从数据库中查出来的DataRow中会记住表名,如果是在Java中创建的而且没有设置数据来源(表)的参数需要在insert时指定
    service.insert("表名", DataRow)
    比较常见的情况是从多个表或视图中查出10列数据,操作完后需要保存3列到另外一个表,这时需要同时指定表、数据、列(属性)
    service.insert("表名", DataRow, "列1", "列2", "列3")
    DataRow是一种Map结构,相当于表中的一行,但DataRow有着比Map更强更便捷的数据处理能力,如数据格式化、json/xml转换、忽略大小写、批量操作、属性值动态组合,参考【DataRow
    DataSet是DataRow的集合,相当于表中的多行,DataSet同样提供了更多关于集合的操作,如行列转换、类SQL查询、各种数学计算等,参考【DataSet
  2. service.insert(Entity/EntitySet/Collection)
    Entity是指在具体项目中创建的实体类,如用户、部门等
    插入Entity的方法与DataRow类似,稍有区别的是Entity上可以用注解设置表名、列名,主键,以及ManyToMany、OneToMany等,注解方式兼容JPA

DataSet/DataRow提供了与Entity/EntitySet之间的转换方法,如
User user = new DataRow().entity(User.class)

EntitySet users = new DataSet().entitys(User.class)


二、根据select结果

INSERT INTO A SELECT * FROM B

数量比较大,又不需要处理时,可以直接根据SELECT插入,跳过了网络IO会比较快,参考【根据查询插入



数据库操作 · 2023-10-31

JDBC操作clickhouse示例

数据库操作 · 2023-10-20

关于Orcle的MERGE INTO 如果存在重复数据 覆盖或忽略

数据库操作 · 2023-10-12

关于PostgreSQL的ON CONFLICT,如果存在重复数据 覆盖或忽略

数据库操作 · 2023-09-19

关于MySQL的insert ignore into和replace into

数据库操作 · 2023-09-02

insert/update过程中列的控制

常用示例 · 2023-10-24

异构数据源迁移核心部分代码Mysql到Apache Ignite|VoltDB

EntitySet · 2023-05-16

Entity中的集合(数组)属性保存到数据库中

Entity · 2023-08-04

Data truncation: Cannot create a JSON value from a string with CHARACTER SET 'binary'

数据集操作 · 2023-10-21

upsert(已存在则更新或跳过,中不存在则插入)

数据集操作 · 2023-10-16

关于Apache ignite的MERGE 如果存在重复数据 覆盖或忽略

数据集操作 · 2023-10-10

insert/update Map时大小写的问题

query/querys · 2023-04-19

sequence

insert · 2023-02-25

插入数据后返回主键值

AnylineService · 2023-08-16

简易方式指定数据源和主键

insert · 2023-08-23

插入数组

insert · 2024-06-20

根据查询插入insert into select from

insert · 2024-07-23

插入记录时自动建表

数据类型 · 2023-04-17

日期类型

事务控制 · 2023-07-27

多数据源事务管理器bean.name

数据类型 · 2023-08-29

插入数组类型

非关系型数据库 · 2024-03-28

插入或修改数据时如何判断插入边还是点

MongoDB · 2023-08-27

MongoDB基础操作

AnylineService · 2020-03-26

save与insert区别

数据类型 · 2022-08-31

关于自动检测表结构

常见问题 · 2022-09-22

关于insert或update时确定哪些列参与到insert或update中