Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

244
Views
Postgres Traducir el valor de la columna en el prefijo del esquema en una consulta

Tengo una base de datos que usa esquemas postgresql para propósitos de múltiples inquilinos. Tiene una tabla en el esquema public llamada customers con una columna de id y tenant . El valor para el inquilino es una cadena, y hay un esquema postgresql correspondiente con tablas que coinciden.

Se parece a esto:

 # public.customers # first.users # second.users | id | tenant | | id | name | | id | name | |----|--------| |----|--------| |----|--------| | 1 | first | | 1 | bob | | 1 | jen | | 2 | second | | 2 | jess | | 2 | mike |

Me pregunto cómo podría hacer una sola consulta para obtener valores de una tabla en el esquema, solo con una identificación de cliente.

Entonces, si tengo un ID de cliente de 1 , ¿cómo puedo select * from first.users en una sola consulta?

Supongo que esto podría tener que ser una función escrita en pgpsql, pero no tengo mucha experiencia con eso. Algo como:

 select * from tenant_table(1, 'users');

?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

create or replace function f(_id int) returns table (id int, name text) as $f$ declare _tenant text; begin; select tenant into _tenant from public.customers where id = _id; return query execute format($e$ select * from %I.users $e$, _tenant); end; $f$ language plpgsql;
over 4 years ago · Santiago Trujillo Report

0

No puedes hacer eso con una sola consulta.

Tendrá que usar una consulta que seleccione el nombre del esquema, luego construir una segunda consulta y ejecutarla.

Por supuesto, puede definir una función PL/pgSQL que haga ambas cosas por usted y ejecute la consulta dinámica con EXECUTE .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!