You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by silence <sl...@aliyun.com.INVALID> on 2021/08/02 02:08:28 UTC
回复:场景题:Flink SQL 不支持 INSERT INTO… ON DUPLICATE KEY UPDATE ?
你在你的sink ddl定义了主键会自动的按主键进行upsert的
参考https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/table/jdbc/#idempotent-writes
------------------------------------------------------------------
发件人:Ye Chen <ch...@163.com>
发送时间:2021年7月30日(星期五) 17:57
收件人:user-zh <us...@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应该怎么处理?
Re:回复:场景题:Flink SQL 不支持 INSERT INTO… ON DUPLICATE KEY UPDATE ?
Posted by Ye Chen <ch...@163.com>.
你好,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" <sl...@aliyun.com.INVALID> 写道:
>你在你的sink ddl定义了主键会自动的按主键进行upsert的
>参考https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/table/jdbc/#idempotent-writes
>
>
>------------------------------------------------------------------
>发件人:Ye Chen <ch...@163.com>
>发送时间:2021年7月30日(星期五) 17:57
>收件人:user-zh <us...@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应该怎么处理?
>
>