你好,upsert是全字段更新,必须指定所有的字段值。我们的需求是想根据主键更新部分字段,其余字段不变。
---------------------------------------------------- 现有table CREATE TABLE t ( a bigint, b bigint, c bigint, PRIMARY KEY (a) NOT ENFORCED ) WITH ( ... ); 我们的场景只想根据主键a更新部分字段b,其余的字段c保持不变,例如 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应该怎么处理? 在 2021-08-02 10:08:28,"silence" <[email protected]> 写道: >你在你的sink ddl定义了主键会自动的按主键进行upsert的 >参考https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/table/jdbc/#idempotent-writes > > >------------------------------------------------------------------ >发件人:Ye Chen <[email protected]> >发送时间:2021年7月30日(星期五) 17:57 >收件人:user-zh <[email protected]> >主 题:场景题: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应该怎么处理? > >
