我们将在我们的产品中将数据库从mysql迁移到postgresql (通过java)。因此,我们需要在java应用程序中将mysql查询改为postgresql查询。如何在postgresql中创建表,即databasename.tablename。对于mysql,我们可以直接创建表,例如create table information.employee。这里的数据库名是"information“,表名是"employee”。是否有可能在postgresql中实现相同的查询。
我在谷歌上搜索,它说跨数据库参考是不可能的。请帮帮我。我看到pg_class表它包含特定数据库中的表名,就像wise数据库和表的关系都存储在任何其他表中一样。
发布于 2012-01-04 20:34:08
这通常是使用模式而不是数据库完成的,这或多或少类似于MySQL组织它的方式。
而不是
create database xyz 使用
create schema xyz创建表格时,请创建表格:
create table xyz.myTable您需要更新搜索路径才能在psql命令行工具上查看它们,或者如果您希望在不显式使用模式的情况下查询它们。默认模式是public,所以当您创建一个没有模式名称的表时,它最终变成了public。如果按如下所示修改search_path,默认模式将成为列表中的第一个模式: xyz。
set search_path=xyz,public,pg_catalog;并且该语句中不能有空格。您也可以全局地为用户/角色执行此操作:
alter role webuser set search_path=xyz,public,pg_catalog;此外,不要忘记postgresql字符串匹配默认情况下是大小写敏感的(这一点很容易引起人们的注意)。如果您希望每个模式的文件具有不同的物理位置,则可以使用表空间来实现。如果你看一下postgresql文档页面,他们有关于如何做的信息,这是相当简单的。
发布于 2012-01-04 20:36:56
PostgreSQL中的MySQL ==架构中的数据库。因此,您很可能希望将所有mysql数据库迁移到一个postgres数据库中。然后,您将能够进行“跨数据库”查询。
请看我对这个问题的回答:Relationship between catalog, schema, user, and database instance
https://stackoverflow.com/questions/8726743
复制相似问题