Eu criei a tabela donor
no esquema reference
conforme:
CREATE TABLE reference.donor (
donor_code smallint PRIMARY KEY,
donor_name character varying NOT NULL,
donor_type smallint REFERENCES reference.donor_type (type_id),
alpha_2_code char(2) REFERENCES reference.iso_3166_1 (alpha_2_code)
);
Eu preenchi a tabela conforme:
INSERT INTO reference.donor (donor_code, donor_name, donor_type, alpha_2_code)
SELECT donor_code, donor_name, donor_type, alpha_2_code
FROM reference.donor_template;
Quando eu corro:
\dt+ reference.*
dentro do psql vejo a reference.donor
tabela:
List of relations
Schema | Name | Type | Owner | Size | Description
-----------+----------------+-------+----------+-------+-------------
reference | donor | table | postgres | 16 kB |
reference | donor_template | table | postgres | 16 kB |
reference | donor_type | table | postgres | 16 kB |
reference | iso_3166_1 | table | postgres | 48 kB |
(4 rows)
Mas quando eu corro \dt+ donor*
(ou \dt(+)
) não vejo a reference.donor
tabela:
List of relations
Schema | Name | Type | Owner | Size | Description
-----------+----------------+-------+----------+-------+-------------
oecd_cl | donor | table | postgres | 16 kB |
reference | donor_template | table | postgres | 16 kB |
reference | donor_type | table | postgres | 16 kB |
(3 rows)
Por que só posso ver a reference.donor
tabela se corro \dt+ reference.*
ou \dt+ *.donor
?
Eu esperava \dt
(ou \dt+
) exibi-lo, mas não mostra.
My search_path
inclui o esquema reference
e o usuário postgres
tem todas as permissões no esquema reference
e todas as tabelas no esquema conforme:
GRANT ALL ON ALL TABLES IN SCHEMA reference TO postgres;
Só para esclarecer, tenho duas donor
tabelas, mas elas estão em dois esquemas diferentes, ou seja, oecd.donor
& reference.donor
. (Eu posso ver oecd.donor
sem problemas quando eu uso \dt(+)
dentro do psql).
fonte
search_path
primeiro e sem que eu saiba os nomes da tabela / esquema com antecedência? Ou eu sou melhor de consultar oinformation schema
exemplo ,:SELECT table_schema, table_name FROM information_schema.tables ORDER BY table_schema, table_name;
?\dt *.*
as instruções na cotação.O primeiro comando funciona porque todas as tabelas listadas têm 'referência' em seu esquema. O segundo comando funciona da mesma forma para 'doador'. portanto, a relação "reference.iso_3166_1" não possui nenhum 'doador' em seu nome. se você quiser listar iso_3166_1, tente
ref: http://www.postgresql.org/docs/current/static/app-psql.html#APP-PSQL-PATTERNS
fonte
reference | donor
não está listado com o segundo comando.\dt
(ou\dt+
) não lista a tabela reference.donor. Tudo está OK conforme a tabela reference.iso_3166_1.