gpt4 book ai didi

postgresql - 跨数据库引用未实现 :

转载 作者:IT王子 更新时间:2023-10-28 23:44:02 27 4
gpt4 key购买 nike

我正在尝试将 SQL 内连接查询转换为 PostgreSQL 内连接查询。在此内部联接查询中,哪些表正在使用所有表不存在于一个数据库中。我们将表分成两个数据库,即应用程序数据库和安全数据库

  1. 用户和权限表存在于安全数据库中
  2. 用户角色映射和部门存在于应用程序数据库中

我试过如下,但出现以下错误

错误

ERROR:  cross-database references are not implemented: "Rockefeller_ApplicationDb.public.userrolemapping"
LINE 4: INNER JOIN "Rockefeller_ApplicationDb".public.userro..

SQL 存储函数

SELECT   Department.nDeptID 
FROM Users INNER JOIN Permission
ON Users.nUserID = Permission.nUserID INNER JOIN UserRoleMapping
ON Users.nUserID = UserRoleMapping.nUserID INNER JOIN Department
ON Permission.nDeptInst = Department.nInstID
AND Department.nInstID = 60
WHERE
Users.nUserID = 3;

PostgreSQL 存储函数

SELECT dep.ndept_id 
FROM "Rockefeller_SecurityDb".public.users as u
INNER JOIN "Rockefeller_SecurityDb".public.permissions p ON u.nuser_id = p.nuser_id
INNER JOIN "Rockefeller_ApplicationDb".public.userrolemapping as urm ON u.nuser_id = urm.nuser_id
INNER JOIN "Rockefeller_ApplicationDb".public.department dep ON p.ndept_inst = dep.ninst_id
AND dep.ninst_id = 60
WHERE
u.nuser_id = 3;

最佳答案

您不能连接来自不同数据库的表。

在 PostgreSQL 中,数据库在设计上是逻辑分离的。

如果你想连接表,你应该把它们放在一个数据库的不同模式中,而不是放在不同的数据库中。

请注意,在 MySQL 中所谓的“数据库”在标准 SQL 中称为“模式”。

如果你真的需要连接来自不同数据库的表,你需要使用外部数据包装器。

关于postgresql - 跨数据库引用未实现 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51784903/

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