spark写入关系型数据库的duplicateIncs参数使用

在看一段spark写数据到关系型数据库代码时,发现一个参数没有见过:

Scala 复制代码
df.write
      .format("org.apache.spark.sql.execution.datasources.jdbc2")
      .options(
        Map(
          "savemode" -> JDBCSaveMode.Update.toString,
          "driver" -> exportDriver,
          "url" -> exportUrl,
          "user" -> exportUserName,
          "password" -> exportPassword,
          "dbtable" -> targetTable,
          "useSSL" -> "false",
          "duplicateIncs" -> "",//需要更新的字段,不写全部根据主键更新
          "showSql" -> "true"
        )
      ).save()

那就是duplicateIncs,翻阅相关资料:

这应该是mysql 4.1之后的一个可用配置,比如:

Scala 复制代码
UPDATE table SET c=c+1 WHERE a=1;

如果是用insert语句,怎么达到相同的效果呢?(指定某个字段更新)

Scala 复制代码
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;  

当然前提是,这个表要有主键或唯一索引,这里是a字段。

还可以指定多个字段:ON DUPLICATE KEY UPDATE后面可以放多个字段,用英文逗号分割。

下面是表中更改(增加或修改)两条记录的例子:

Scala 复制代码
  INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)  
  ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);  
相关推荐
流㶡7 分钟前
MySQL 常用操作指南(Shell 环境)
数据库
数据知道21 分钟前
PostgreSQL 性能优化:连接数过多的原因分析与连接池方案
数据库·postgresql·性能优化
怣5021 分钟前
MySQL子查询实战指南:数据操作(增删改查)与通用表达式
数据库·chrome·mysql
范纹杉想快点毕业24 分钟前
从单片机基础到程序框架:构建嵌入式系统的完整路径
数据库·mongodb
数据知道26 分钟前
PostgreSQL性能优化:如何定期清理无用索引以释放磁盘空间(索引膨胀监控)
数据库·postgresql·性能优化
喵叔哟28 分钟前
67.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--分摊功能总体设计与业务流程
数据库·微服务·架构
tryCbest28 分钟前
Oracle查看存储过程
数据库·oracle
py小王子31 分钟前
dy评论数据爬取实战:基于DrissionPage的自动化采集方案
大数据·开发语言·python·毕业设计
咩咩不吃草35 分钟前
【MySQL】表和列、增删改查语句及数据类型约束详解
数据库·mysql·语法
不懒不懒35 分钟前
【MySQL 实战:从零搭建规范用户表(含完整 SQL 与避坑指南)】
数据库