目录

裴先生
裴先生
发布于 2024-03-24 / 0 阅读
0
1

[Doris踩坑记]Caused by: java.sql.SQLException: errCode = 2, detailMessage = Can not modify distribution column[project_name]. index[ads_supplier_plan_purchase_master_plan]

原创

裴先生在编辑Doris数据库表字段长度时,遇到题目中的报错信息,导致无法成功修改,原因如下:

在Doris中,如果您遇到“Can not modify distribution column[project_name]”的错误,这通常意味着您正在尝试修改一个用作分布键(distribution key)的列。在Doris中,分布键是用来确定数据在不同节点间如何分布的,一旦表被创建,分布键的列就不能被修改。

解决方案

创建新表

获取旧表的表结构:

show create table your_table_name;
-- 表结构如下
CREATE TABLE `your_table_name` (
`project_name` varchar(300) NULL COMMENT "项目名称", 
`material_type` varchar(300) NULL COMMENT "物资类型", 
`material_class` varchar(150) NULL COMMENT "物料分类",
`rfq` varchar(100) NULL COMMENT "日分区" ) ENGINE=OLAP DUPLICATE KEY(`project_name`) COMMENT "****" DISTRIBUTED BY HASH(`material_type`) BUCKETS 3 PROPERTIES ( "replication_allocation" = "tag.location.default: 3", "in_memory" = "false", "storage_format" = "V2" );

重新执行之前,将待修改的字段属性更改,然后重新执行即可,SQL如下:

DROP TABLE your_table_name;
CREATE TABLE `your_table_name` (
`project_name` varchar(300) NULL COMMENT "项目名称", 
`material_type` varchar(300) NULL COMMENT "物资类型", 
`material_class` varchar(150) NULL COMMENT "物料分类",
`rfq` varchar(100) NULL COMMENT "日分区" ) ENGINE=OLAP DUPLICATE KEY(`project_name`) COMMENT "****" DISTRIBUTED BY HASH(`material_type`) BUCKETS 3 PROPERTIES ( "replication_allocation" = "tag.location.default: 3", "in_memory" = "false", "storage_format" = "V2" );

原创

版权声明:本博客原创文章,由 裴先生 2024年03月24日 发表。
转载说明:除特殊说明外本站文章皆由 CC BY-NC-SA 4.0 协议发布,转载须注明出处。


评论