스키마 테이블에 Redshift 테이블이 표시되지 않습니까?


12

Redshift에서 다음 쿼리에 테이블이 표시되지 않는 이유는 무엇입니까? 다음에 실행하는 쿼리에서 볼 수 있듯이 분명히 존재합니다. 스키마의 모든 테이블을 나열하는 방법을 원합니다.

mydb=# select distinct(tablename) from pg_table_def where schemaname = 'db';
 tablename 
-----------
(0 rows)

mydb=# \d db.some_table
                    Table "db.some_table"
     Column      |            Type             | Modifiers 
-----------------+-----------------------------+-----------
...correct info shows up here...
...but nothing showed up above?

3
귀하의 질문과 관련이 없지만 구별은 기능이 아닙니다. 혼동을 피하기 위해 괄호를 제거하는 것이 좋습니다. 두 번째 생각에 하나의 스키마에 동일한 이름을 가진 두 개의 테이블이있을 수 없으므로 고유 한 자체를 제거 할 수도 있습니다.
Lennart

결과는 무엇입니까 select schemaname, tablename from pg_table_def?
Lennart

schema-name은 "데이터베이스 이름"처럼 보이기 때문에 "db"입니까?.
Senthil

답변:


13

Redshift의 PG_TABLE_DEF 는 사용자에게 표시되는 테이블에 대한 정보 만 반환합니다. 즉, search_path 변수에 정의 된 스키마에있는 테이블 만 표시합니다. PG_TABLE_DEF가 예상 결과를 리턴하지 않으면 search_path 매개 변수 가 관련 스키마를 포함하도록 올바르게 설정되었는지 확인하십시오 .

이 시도 -

mydb=# set search_path="$user",db;

그런 다음 쿼리를 실행하십시오.

mydb=# select tablename from pg_table_def where schemaname = 'db';

'이 작업'보다 자세한 정보를 제공하려면 답변을 수정하십시오.
RLF

1

PG_TABLE_DEF는 검색 경로에 포함 된 스키마의 테이블에 대한 정보 만 리턴합니다. 링크

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.