postgresql - pglogical.replicate_ddl_command 报价处理
问题描述
提供者在 OEL 7 postgres 12.4 上,订阅者在 RDS 13.2 上
只要命令的开头和结尾之间没有引号,pglogical.replicate_ddl_command 就可以正常工作。例如,下面工作正常
select pglogical.replicate_ddl_command('create table public.foo ( like public.orders including all)','{default}'::text[]);
设置事件触发器以将此新创建的表添加到默认的 replication_set。
接下来,我们需要将表 foo 作为分区附加到表 order 中,这就是 FOR VALUES 中的引号成为问题的地方。
select pglogical.replicate_ddl_command('Alter table public.orders attach partition public.foo for values from ('2021-05-01') TO ('2021-06-01')','{default}'::text[]);
ERROR: syntax error at or near "2021"
LINE 1: ...ers attach partition public.foo for values from ('2021-05-01...
^
在与此相关的文档中找不到任何内容。请帮忙。
解决方案
虽然我能够通过使用双引号来避免错误''
,因为command
函数上的参数是文本,ATTACH PARTITION
但没有复制。虽然这与我在这个问题中提出的问题不同,但感谢任何反馈和想法。
将此笔记留给遇到我情况的其他人。要求是您需要将父分区及其所有分区添加到同一复制集。就我而言,我添加了所有分区,但没有添加父分区。
推荐阅读
- php - 在 PHP 中使用路由有什么意义?
- android - SurfaceTexture 可以产生纹理流吗?
- jquery - MySQL 从特定值中选择
- excel - 用于复制/粘贴的 VBA .range 方法导致 #N/A
- python - 导入文件和导入 .file 的区别
- javascript - d3.js 在一个元素内绘制两条线
- swift - Swift 我可以将 NSTextview 分配为尚未创建的全局吗?
- git - 吉特历史。查找提交,包含在合并提交中
- python - K 值不会改变 SelectKBest 的结果
- selenium - 使用 Nodejs 和 Mocha 运行 Selenium 时出现“NoSuchSessionError”