GuessDB(DWS) Distributed key column can‘t be updated in current version

往数据库插入或更新数据时报错,提示分布键不能被更新,错误信息如下所示:GaussDB(DWS) 分布键不允许被更新。

问题现象

往数据库插入或更新数据时报错,提示分布键不能被更新,错误信息如下所示:

ERROR: Distributed key column can't be updated in current version

原因分析

GaussDB(DWS) 分布键不允许被更新。

处理方法

方法一:分布键目前暂不支持更新,直接跳过该报错。

方法二:将分布列修改为一个不会更新的列(8.1.0 版本后,支持调整分布列,以下为示例)。

  1. 查询当前表定义,回显发现该表分布列为 c_last_name。

    select pg_get_tabledef(‘customer_t1’);

  2. 尝试执行更新分布列中的数据提示错误信息。

    update customer_t1 set c_last_name = ‘Jimy’ where c_customer_sk = 6885;

  3. 将该表的分布列修改为不会更新的列,例如 c_customer_sk。

    alter table customer_t1 DISTRIBUTE BY hash (c_customer_sk);

  4. 重新执行更新旧的分布列的数据。更新成功。

    update customer_t1 set c_last_name = ‘Jimy’ where c_customer_sk = 6885;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值