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);  
相关推荐
m0_748554815 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
早日退休!!!6 小时前
《数据结构选型指南》笔记
数据结构·数据库·oracle
@insist1236 小时前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
xcLeigh6 小时前
KES数据库性能优化实战
数据库·sql·性能优化·sql优化·数据性能
天辛大师6 小时前
AI助力旅游扩大化,五一旅游公园通游年票普惠研究
大数据·启发式算法·旅游
阿正呀7 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
yoyo_zzm7 小时前
Laravel9.x新特性全解析
数据库·mysql·nginx
2501_901200537 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
WordPress学习笔记7 小时前
镌刻中式美学的高端WordPress主题
大数据·人工智能·wordpress
m0_495496418 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python