【问题标题】:PostgreSQL: rename an unnamed partition?PostgreSQL:重命名一个未命名的分区?
【发布时间】:2022-08-04 14:10:02
【问题描述】:

我创建了一个带有每月分区的表,但是我在初始分区上犯了一个错误。

当我浏览 Data Grip 中的分区时,第一个分区显示为未命名(见图)

但是,在选择分区表时,将对此分区进行列为命名abc_1_prt_2.所有其他分区\'表都命名为abc_1_prt_p202208

是否可以重命名未命名的分区?

当我右键单击分割在 Data Grip 中并选择改名, Datagrip 提供以下脚本:

alter table sam_tap.fct_tap_metadata rename partition \"\" to \"\'p201809\'\";

这给出了以下错误:

[42601] 错误:在 \"\"\"\" 处或附近的零长度分隔标识符

  • 没有rename partition 开头,你需要alter table \"\" rename to p201809;(不要在表名中包含特殊字符)。但很可能表名并不是真正的空,它只是您的 SQL 客户端无法正确处理。尝试select * from pg_partition_tree(\'sam_tap.fct_tap_metadata\');查看所有分区
  • 谢谢@a_horse_with_no_name alter table sam_tap.fct_tap_metadata rename partition \"\" to p201809; 结果[42601] 错误:在 \"\"\"\" 处或附近的零长度分隔标识符.好像我们使用的是旧版本的 PostgreSQL,因为 pg_partition_tree 不适用于我的存在

标签: postgresql rename partition


【解决方案1】:
ALTER TABLE "partition <unnamed1>'
RENAME TO whatever;

这假定名称中的任何地方都没有多余的空格。

【讨论】:

  • 谢谢,但这不是分区的名称,它只是 Data Grip 指示分区未命名的方式。
【解决方案2】:

仅供参考,最后我删除了表并使用正确的分区名称重新创建了它(并从备份中填充了数据)。

我无法重命名未命名的分区。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2017-10-09
    • 2020-01-29
    • 2011-03-28
    相关资源
    最近更新 更多