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);  
相关推荐
科技小郑6 分钟前
吱吱企业通讯软件以安全为基,搭建高效的通讯办公平台
大数据·运维·网络·安全·吱吱企业通讯
weixin_177297220691 小时前
家政小程序系统开发:引领家政服务数字化转型
大数据·小程序
babytiger1 小时前
如何将yolo训练图像数据库的某个分类的图像取出来
数据库·yolo·分类
九皇叔叔4 小时前
【7】SQL 语句基础应用
数据库·sql·mysql
电商软件开发小辛6 小时前
我店生活平台是不是 “圈钱平台”?揭开消费补贴新模式的面纱
大数据
青云交6 小时前
Java 大视界 -- 基于 Java 的大数据实时流处理在智能电网分布式电源接入与电力系统稳定性维护中的应用(404)
java·大数据·分布式·智能电网·flink 实时流处理·kafka 数据采集·iec 61850 协议
jayzhang_6 小时前
SPARK入门
大数据·开发语言
麦聪聊数据6 小时前
能源行业数据库远程运维安全合规实践:Web化平台的落地经验
运维·数据库·sql·安全·数据服务
上海控安6 小时前
上海控安:GB 44495-2024《汽车整车信息安全技术要求》标准解读和测试方案
大数据·人工智能·汽车
chenglin0167 小时前
阿里云——云存储与数据库服务
数据库·阿里云·云计算