gpt4 book ai didi

mysql - 如何使用 PostgreSQL 完成 "MySQL cross database reference"

转载 作者:行者123 更新时间:2023-11-29 14:12:36 27 4
gpt4 key购买 nike

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

我用谷歌搜索它说跨数据库引用是不可能的。请帮我。我看到 pg_class 表它包含特定数据库中的表名,就像明智的数据库和表关系存储在任何其他表中。

最佳答案

这通常是使用模式而不是数据库完成的,这或多或少类似于 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 文档页面,他们会提供有关如何执行此操作的信息,这非常简单。

关于mysql - 如何使用 PostgreSQL 完成 "MySQL cross database reference",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com