是的 加了 primary key constraint 后会强制将类型转成 Not nullable,这个是 primary key 的特性导致的。

Best,
Danny Chan
在 2020年8月20日 +0800 PM5:19,xiao cai <[email protected]>,写道:
> Hi:
> flink版本1.11.0 connector为kafka
> DDL中声明某个字段为primary key时,会报类型不匹配,去掉primary key constraint就可以正常执行。
> 把shop_id设置为 varchar not null也不行。
>
>
> org.apache.flink.table.api.ValidationException: Type STRING NOT NULL of table 
> field 'shop_id' does not match with the physical type STRING of the 'shop_id' 
> field of the TableSource return type.
>
>
> SQL如下:
> create table source_0 (
> `shop_id` varchar,
> `user_id` bigint,
> `category_id` int,
> `ts` bigint,
> `proc_time` as PROCTIME(),
> `event_time` AS TO_TIMESTAMP(FROM_UNIXTIME(`ts` / 1000, 'yyyy-MM-dd 
> HH:mm:ss')),
> watermark for event_time AS event_time,
> PRIMARY KEY (shop_id, user_id) NOT ENFORCED
> ) with (
> 'connector.type' = 'kafka',
>
>
> )

回复