基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
OceanBase 数据库如何更新分区表的分区键值
更新时间:2026-05-21 09:16
本文介绍 OceanBase 数据库 MySQL 和 Oracle 模式下更新分区表的分区键值的方法。
适用版本
OceanBaes 数据库所有版本
MySQL 模式
OceanBase 数据库的 MySQL 租户可以直接更新分区键值。
obclient> UPDATE $column SET $value_clause WHERE $where_clause;
Oracle 模式
OceanBase 数据库的 Oracle 租户中,如果直接更新分区键,可能会出现以下错误。
obclient> UPDATE $column SET $value_clause WHERE $where_clause;
ORA-14402: updating partition key column would cause a partition change
这是由于 Oracle 模式中如果修改了分区键,则修改行的 rownum 会发生变化,某一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,导致出现该错误。
这种情况可以通过修改表的 ROW MOVEMENT 属性,开启了这个选项后,再更新分区键,更新分区表就会把这行从分区中删除,并加到更新后所属的分区。
obclient> ALTER TABLE $table ENABLE ROW MOVEMENT;