postgresql: as referências cruzadas de bases de dados não estão implementadas:

estou a tentar converter a consulta de junção interna SQL em consulta de junção interna PostgreSQL. Nesta consulta interna join que tabelas estão usando que todas as tabelas não estão presentes em um banco de dados. separámos as tabelas em duas bases de dados, ou seja, dB de aplicação e db de segurança

  1. Os Utilizadores e a tabela de permissões estão presentes na segurança db
  2. a utilização e o serviço estão presentes na aplicação db
Tentei por baixo, mas estou a seguir-te. erro

Erro

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

função armazenada 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;

Função Armazenada 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;
Author: SpringUser, 2018-08-10

1 answers

Não pode juntar-se a tabelas de diferentes bases de dados.

As bases de dados estão logicamente separadas em PostgreSQL por desenho.

Se quiser juntar-se às tabelas, deve colocá-las em esquemas diferentes numa base de dados e não em bases de dados diferentes.

Note que o que é chamado de "banco de dados" no MySQL é chamado de "esquema" no SQL padrão.

 1
Author: Laurenz Albe, 2018-08-10 12:43:05