你在你的sink ddl定义了主键会自动的按主键进行upsert的
参考https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/table/jdbc/#idempotent-writes


------------------------------------------------------------------
发件人:Ye Chen <chenye...@163.com>
发送时间:2021年7月30日(星期五) 17:57
收件人:user-zh <user-zh@flink.apache.org>
主 题:场景题:Flink SQL 不支持 INSERT INTO… ON DUPLICATE KEY UPDATE ?

现有table 
CREATE TABLE t (
 a        bigint,
 b        bigint,
 c        bigint,
  PRIMARY KEY (a) NOT ENFORCED
) WITH (
...
);


我们的场景只想根据主键a更新部分字段b,其余的字段保持不变,例如
mysql 支持   insert into t(a,b,c) select '1','2','3' on duplicate key update 
b='4';
主键重复的时候只更新字段b,字段c的值不变


我在官方文档中没找到这个用法,sql-client也测试了一下也不支持 on duplicate key update,会报错。
请问这种部分字段更新的场景 使用flink sql应该怎么处理?


回复