PostgreSQL Aurora中partman.run_maintenance执行失败的外键问题咨询
解决Partman 5.1.0中外键关联分区删除的级联问题
在Partman 5.x版本中,原来单独的drop_cascade_fk字段被整合到了partman.part_config表的maintenance_optionsJSON字段中,操作方式如下:
1. 已有分区表的配置更新
直接更新目标表的配置,添加级联删除外键的参数:
UPDATE partman.part_config SET maintenance_options = '{"drop_cascade_fk": true}' WHERE parent_table = 'public.PartitionedTableA';
执行完这条SQL后,再运行partman.run_maintenance('PartitionedTableA'),维护过程中删除PartitionedTableA的旧分区时,会自动级联处理PartitionedTableB中外键引用的对应分区。
2. 新创建分区表时配置
如果是刚创建分区表,调用partman.create_parent时可以直接传入该配置:
SELECT partman.create_parent( p_parent_table := 'public.PartitionedTableA', p_control := 'your_control_column', -- 替换成你的分区控制列 p_type := 'native', p_interval := '1 month', -- 替换成你的分区间隔 p_maintenance_options := '{"drop_cascade_fk": true}' );
验证配置生效
可以通过以下SQL确认配置是否正确设置:
SELECT parent_table, maintenance_options FROM partman.part_config WHERE parent_table = 'public.PartitionedTableA';
内容的提问来源于stack exchange,提问作者Adarsh H D Dev
相关产品推荐
相关产品推荐

