为什么不同的 postgres 表不能使用同名的索引?
我正在尝试将一些表从基本表更改为每月分区表。正常的解决方案似乎是
- 创建源表的分区副本(空)
CREATE TABLE copy (LIKE original INCLUDING INDEXES) PARTITION BY RANGE xxxx
- 将数据从源表复制到副本。
INSERT INTO copy (SELECT * FROM original WHERE ???)
- 删除源
DROP TABLE original
- 重命名分区表。
ALTER TABLE copy RENAME TO original
我当前的问题是,尽管CREATE TABLE ... LIKE ... INCLUDING INDEXES
将使用所有相同的字段名称和数据类型,但它将构成一组新的索引名称。由于各种原因,这些数据库上的索引需要符合固定的命名约定。
有没有办法复制一个表并将索引名称复制到?