donor
스키마에 reference
따라 테이블 을 만들었습니다 .
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)
);
다음과 같이 테이블을 채웠습니다.
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;
내가 실행할 때 :
\dt+ reference.*
psql 내부에서 reference.donor
테이블을 봅니다 .
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)
그러나 내가 달리면 \dt+ donor*
(또는 \dt(+)
) reference.donor
테이블 이 보이지 않습니다 .
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)
이유는 단지 볼 수 있습니다 reference.donor
내가 실행하는 경우 테이블 \dt+ reference.*
이나 \dt+ *.donor
?
나는 기다리고 있었다 \dt
(또는 \dt+
)을 표시 할 수 있지만하지 않습니다.
내 search_path
스키마 포함 reference
및 사용자 postgres
는 스키마에 따라 스키마 reference
및 스키마의 모든 테이블에 대한 모든 권한을 갖습니다 .
GRANT ALL ON ALL TABLES IN SCHEMA reference TO postgres;
명확히하기 위해 두 개의 donor
테이블이 있지만 두 개의 다른 스키마 즉 oecd.donor
& reference.donor
입니다. ( psql 내부에서 oecd.donor
사용할 때 아무런 문제없이 볼 수 있습니다 \dt(+)
).
search_path
첫 번째에 배치되는지에 관계없이 테이블 / 스키마 이름을 미리 알지 못 하더라도 모든 것을 표시 합니까? 또는information schema
예를 들어 쿼리하는 것이 좋습니다SELECT table_schema, table_name FROM information_schema.tables ORDER BY table_schema, table_name;
.