
# 插入或更新数据时报错，提示分布键不能被更新
#### 问题现象
往数据库插入或更新数据时报错，提示分布键不能被更新，错误信息如下所示：
```
ERROR: Distributed key column can't be updated in current version
```
#### 原因分析
DWS分布键不允许被更新。
#### 处理方法
方法一：分布键目前暂不支持更新，直接跳过该报错。
方法二：将分布列修改为一个不会更新的列（8.1.0版本后，支持调整分布列，以下为示例）。
1. 查询当前表定义，返回结果显示该表分布列为c_last_name。 
   ```
   SELECT pg_get_tabledef('customer_t1');
   ```
   ![](https://support.huaweicloud.com/trouble-dws/figure/zh-cn_image_0000001248712703.png "点击放大")
   
   
2. 更新分布列中的数据时报错。 
   ```
   UPDATE customer_t1 SET c_last_name = 'Jimy' WHERE c_customer_sk = 6885;
   ```
   ![](https://support.huaweicloud.com/trouble-dws/figure/zh-cn_image_0000001204596316.png "点击放大")
   
   
3. 将该表的分布列修改为不会更新的列，例如c_customer_sk。 
   ```
   ALTER TABLE customer_t1 DISTRIBUTE BY hash (c_customer_sk);
   ```
   ![](https://support.huaweicloud.com/trouble-dws/figure/zh-cn_image_0000001248996617.png "点击放大")
   
   
4. 重新执行更新旧的分布列的数据。更新成功。 
   ```
   UPDATE customer_t1 SET c_last_name = 'Jimy' WHERE c_customer_sk = 6885;
   ```
   ![](https://support.huaweicloud.com/trouble-dws/figure/zh-cn_image_0000001248717121.png "点击放大")
   
   
 
