首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用PostgreSQL实现"MySQL跨数据库引用“

如何用PostgreSQL实现"MySQL跨数据库引用“
EN

Stack Overflow用户
提问于 2012-01-04 20:17:57
回答 2查看 1.2K关注 0票数 0

我们将在我们的产品中将数据库从mysql迁移到postgresql (通过java)。因此,我们需要在java应用程序中将mysql查询改为postgresql查询。如何在postgresql中创建表,即databasename.tablename。对于mysql,我们可以直接创建表,例如create table information.employee。这里的数据库名是"information“,表名是"employee”。是否有可能在postgresql中实现相同的查询。

我在谷歌上搜索,它说跨数据库参考是不可能的。请帮帮我。我看到pg_class表它包含特定数据库中的表名,就像wise数据库和表的关系都存储在任何其他表中一样。

EN

回答 2

Stack Overflow用户

发布于 2012-01-04 20:34:08

这通常是使用模式而不是数据库完成的,这或多或少类似于MySQL组织它的方式。

而不是

代码语言:javascript
复制
create database xyz  

使用

代码语言:javascript
复制
create schema xyz

创建表格时,请创建表格:

代码语言:javascript
复制
create table xyz.myTable

您需要更新搜索路径才能在psql命令行工具上查看它们,或者如果您希望在不显式使用模式的情况下查询它们。默认模式是public,所以当您创建一个没有模式名称的表时,它最终变成了public。如果按如下所示修改search_path,默认模式将成为列表中的第一个模式: xyz。

代码语言:javascript
复制
set search_path=xyz,public,pg_catalog;

并且该语句中不能有空格。您也可以全局地为用户/角色执行此操作:

代码语言:javascript
复制
alter role webuser set search_path=xyz,public,pg_catalog;

此外,不要忘记postgresql字符串匹配默认情况下是大小写敏感的(这一点很容易引起人们的注意)。如果您希望每个模式的文件具有不同的物理位置,则可以使用表空间来实现。如果你看一下postgresql文档页面,他们有关于如何做的信息,这是相当简单的。

票数 3
EN

Stack Overflow用户

发布于 2012-01-04 20:36:56

PostgreSQL中的MySQL ==架构中的数据库。因此,您很可能希望将所有mysql数据库迁移到一个postgres数据库中。然后,您将能够进行“跨数据库”查询。

请看我对这个问题的回答:Relationship between catalog, schema, user, and database instance

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

https://stackoverflow.com/questions/8726743

复制
相关文章

相似问题

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