数据仓库服务 GaussDB(DWS)-插入或更新数据时报错,提示分布键不能被更新:处理方法

时间:2025-02-12 15:02:21

处理方法

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

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

  1. 查询当前表定义,返回结果显示该表分布列为c_last_name。

    1
    SELECT pg_get_tabledef('customer_t1');

  2. 更新分布列中的数据时报错。

    1
    UPDATE customer_t1 SET c_last_name = 'Jimy' WHERE c_customer_sk = 6885;

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

    1
    ALTER TABLE customer_t1 DISTRIBUTE BY hash (c_customer_sk); 

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

    1
    UPDATE customer_t1 SET c_last_name = 'Jimy' WHERE c_customer_sk = 6885;

support.huaweicloud.com/trouble-dws/dws_09_0048.html