1
resposta

Schemas

É possível utilizar um dado de uma tabela presente em um schema em uma tabela de outro schema, através de uma chave estrangeira?

1 resposta

Oi, Gabriel! Tudo bom contigo?

Peço desculpas pela demora em retornar.

Sim, é possível! Para isso, precisamos ter schemas diferentes e, durante a criação das nossas tabelas, indicar a qual schema cada uma delas pertence. Durante esta etapa, já podemos determinar as chaves primárias e estrangeiras, que serão importantes para criar um relacionamento entre essas tabelas.

Abaixo, trago um exemplo genérico que ilustra como podemos trabalhar com esta ideia:

  1. Criar o schema_1:

    CREATE SCHEMA schema_1;
  2. Criar o schema_2:

    CREATE SCHEMA schema_2;
  3. Criar a tabela referente ao schema_1:

    CREATE TABLE schema_1.tabela_1 (
     id_1 SERIAL PRIMARY KEY,
     nome_1 VARCHAR(50)
    );
  4. Criar a tabela referente ao schema_2:

    CREATE TABLE schema_2.tabela_2 (
     id_2 SERIAL PRIMARY KEY,
     nome_2 VARCHAR(50),
     id_1 INTEGER REFERENCES schema_1.tabela_1(id_1)
    );

    Note que, durante a criação da segunda tabela, foi adicionada, na última linha, uma chave estrangeira que faz referência à tabela_1, também denominada id_1.

Com tudo feito, já podemos utilizar dados presentes em ambas as tabelas, realizando, por exemplo, consultas simples, filtros, junções etc. O único ponto de atenção é sempre salientar a qual schema ela se refere, assim: schema_2.tabela_2.

Espero ter ajudado com a explicação! Se surgirem novas dúvidas, estarei aqui para conversarmos sobre elas.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!