在TimeScaleDB超表启用压缩时提示无效列名的求助
解决TimeScaleDB超表压缩时"column does not exist"错误
问题根源:PostgreSQL对标识符(表、列名)的大小写规则:若创建列时用双引号定义(如
"AssetId"),引用时必须用双引号包裹,否则会被自动转为小写,导致找不到实际存在的AssetId列(错误提示中的assetid是转小写后的结果)。修正后的SQL语句:
ALTER TABLE public."Session" SET ( timescaledb.compress, timescaledb.compress_segmentby = '"AssetId"' );
这里将'AssetId'改为'"AssetId"',通过单引号包裹双引号,确保TimeScaleDB正确识别大小写敏感的列名。
- 验证步骤:先执行
SELECT "AssetId" FROM public."Session" LIMIT 1;确认列存在,再执行修正后的压缩启用语句。
内容的提问来源于stack exchange,提问作者jim
相关产品推荐
相关产品推荐

