我想列出 PostgreSQL 9.1 中由动态触发器创建的所有分区。
我能够使用Frank Heikens 的这个相关答案生成分区计数。
我有一个表foo有一个INSERT触发器创建foo_1,foo_2等动态。插入的分区是根据主键 id 选择的,这是一种基于范围的分区。
是否可以显示 table 的当前所有分区foo?
我有一个安装了 PostgreSQL 9.1 的 Ubuntu 12.04 服务器。
我正在尝试在现有的 Postgres DB(比如“xyz”)上设置分区,它有非常大的表,有些表上设置了外键。
这就是我到目前为止所做的
pg_dump从DB“XYZ”的所有表的独立。为每个转储启用了--column-inserts。但是在做最后一步时,我收到了一个错误,比如
ERROR: insert or update on table "aaaaa" violates foreign key constraint "bbbbb_id_refs_id_5b63fd27"
DETAIL: Key (bbbbb_id)=(6817) is not present in table "bbbbb".
结果,基于外键的表没有导入。
如果我在 bbbbb 上对 id 6817 执行 Select 查询,记录确实会显示出来。
然后在谷歌搜索之后我发现了这个,http://www.postgresql.org/docs/9.1/static/ddl-inherit.html
根据维基中提到的警告,继承不适用于外键。
(这对我来说是一个非常坏的消息 :( 我花了很多时间来创建触发器。)
现在,我想知道是否有一种解决方法可以使用外键管理 Postgres 上的分区?
或者
有没有其他方法可以处理带有外键的大表?