Cada tabela em meu banco de dados ( ver esquema ) tem uma chave primária chamada id
.
Gostaria de encontrar todos os registros em todas as tabelas em que id está no intervalo [1.1000]. Como posso escrever uma consulta dessas?
Eu tentei escrever um loop for seguindo os documentos do PostgreSQL
FOR T IN (
SELECT TABLE_NAME FROM information_schema. TABLES
WHERE table_schema = 'public'
)
LOOP
SELECT id, T FROM T WHERE ID BETWEEN 1 AND 1000;
RETURN NEXT T;
END LOOP ;
mas obtém "Erro de sintaxe em FOR".
Você pode fazer isso tudo em uma declaração com bastante facilidade.
Isso gerará uma única instrução. Em
psql
, apenas corra\gexec
atrás disso.