首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Q's on pgsql

Q's on pgsql
EN

Stack Overflow用户
提问于 2008-09-26 06:09:10
回答 3查看 265关注 0票数 0

我是pgsql的新手。我对此有几个问题:

1)我知道可以通过<schema>.<table_name>访问列,但是当我尝试访问像<db_name>.<schema>.<table_name>这样的列时,会抛出如下错误

代码语言:javascript
复制
Cross-database references are not implemented

我该如何实现它?

2)我们有10+表,其中6个有2000+行。在一个数据库中维护所有这些数据行吗?或者我应该创建dbs来维护它们?

3)从上面有超过2000+行的问题表中,对于一个特定的过程,我需要几行数据。我已经创建了视图来获取这些行。例如:一个表包含员工的详细信息,他们分为3种类型:经理、架构师和工程师。很明显,这个表并没有得到每一个进程...用于从其中读取数据的进程...我认为有两种方法可以获取data SELECT * FROM emp WHERE type='manager',或者我可以为经理、架构师和工程师创建视图,然后获取data SELECT * FROM view_manager

你能推荐更好的方法吗?

4)像表一样,视图也需要存储空间吗?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-01 05:25:39

  1. 跨数据库在PostGreSQL中已经存在多年了。您必须在数据库名称前面加上数据库名称(当然,您还有权查询数据库名称)。你会得到类似这样的东西:

选择alias_1.col1,alias_2.col3 FROM table_1 as alias_1,database_b.table_2 as alias_2 WHER...

如果您数据库在另一个实例上,那么您将需要使用dblink contrib。

  • 这个问题不合理。请使用refine.

  • Generally,视图来简化重用它们的其他查询的编写。在您的情况下,正如您所描述的,存储过程可能更适合您的需要。

  • 否,请期待视图定义。
票数 1
EN

Stack Overflow用户

发布于 2008-09-26 06:20:30

1:一个变通方法是打开一个到另一个数据库的连接,并(如果使用psql(1))将其设置为您的当前连接。但是,只有在不尝试连接两个数据库中的表的情况下,这才能起作用。

票数 0
EN

Stack Overflow用户

发布于 2008-10-01 05:19:49

1)这意味着它不是Postgres支持的功能。我不知道如何创建在多个数据库上运行的查询。

2)这对于一个数据库来说是很好的。单个数据库可以包含数十亿行。

3)不要费心创建视图,不管怎样,查询都很简单。

4)视图不需要数据库中的空间,除了它们的查询定义。

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

https://stackoverflow.com/questions/137998

复制
相关文章

相似问题

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