首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用Slony复制视图吗?

我可以用Slony复制视图吗?
EN

Database Administration用户
提问于 2012-04-10 22:09:06
回答 2查看 640关注 0票数 2

我可以为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管理脚本向复制添加视图,而我应该只在复制集群的所有成员上手动安装它?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2012-06-22 18:05:37

斯隆尼是基于触发器的。由于不能在视图上设置触发器,所以不能使用Slony复制视图。

但是,通过使用Slony复制视图使用的表并在从服务器上复制视图定义,可以达到预期的效果。

票数 3
EN

Database Administration用户

发布于 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通过主/唯一键检查,而失败时出错:

代码语言:javascript
复制
Slony-I: setAddTable_int(): "public"."my_name_of_view" is not a regular table

那是我的两分钱。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/16331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档