我可以为Slony提供一些创建视图的SQL吗?
我有一些执行CREATE OR REPLACE VIEW name_of_view等操作的SQL,将其传递给slonik_execute_script,然后尝试为只包含该视图的临时Slony集运行slonik_create_set。
我因ERROR: Slony-I: table "public"."name_of_view" has no primary key错误而被拒绝。据我所知,视图不支持主键。
这是否意味着没有办法使用Slony管理脚本向复制添加视图,而我应该只在复制集群的所有成员上手动安装它?
发布于 2012-06-22 18:05:37
斯隆尼是基于触发器的。由于不能在视图上设置触发器,所以不能使用Slony复制视图。
但是,通过使用Slony复制视图使用的表并在从服务器上复制视图定义,可以达到预期的效果。
发布于 2012-04-25 19:15:26
根据文档,只支持普通表:
Slony-I: setAddTable_int():public.my_view不是常规表,您只能复制(至少使用SET添加表)普通表的对象。这不包括视图或索引。(索引可以随车而来,但您不要求复制索引.)
http://slony.info/documentation/stmtsetaddtable.html
代码中有一个检查来强制执行这个http://slony.info/documentation/function.setaddtable-int-integer-integer-text-name-text.html。
您得到的错误消息似乎是正确的,因为我假设您没有在slon_tools.conf中为视图指定任何主键或唯一键。但是,如果您实际上指定了一个主键或唯一键(必须是视图返回的列),该怎么办?然后,我希望slonik_create_set通过主/唯一键检查,而失败时出错:
Slony-I: setAddTable_int(): "public"."my_name_of_view" is not a regular table那是我的两分钱。
https://dba.stackexchange.com/questions/16331
复制相似问题