답변:
이 검색어에 대한 설명은 무엇입니까 ( manual 의 설명에 따라 )?
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public'
AND table_type='BASE TABLE';
데이터베이스 목록을 원한다면
SELECT datname FROM pg_database WHERE datistemplate = false;
모든 데이터베이스의 현재 pg 설치에서 테이블 목록을 원할 경우
SELECT table_schema,table_name FROM information_schema.tables
ORDER BY table_schema,table_name;
원하는 데이터베이스를 사용하여 postgres 터미널을 엽니 다.
psql dbname (run this line in a terminal)
그런 다음 postgres 환경에서이 명령을 실행하십시오.
\d
이름별로 모든 테이블을 설명합니다. 기본적으로 이름 오름차순으로 된 테이블 목록입니다.
그런 다음 필드별로 테이블을 설명하기 위해 시도해 볼 수 있습니다.
\d tablename.
도움이 되었기를 바랍니다.
\d
나열 하는 옵션 이 있습니다 ...?
\dt
이 거기에 있지?
이 시도:
SELECT table_name
FROM information_schema.tables
WHERE table_schema='public' AND table_type='BASE TABLE'
이것은 작동합니다!
table_type='BASE TABLE'
. 아마도 내가 틀렸을 것입니다. 정교하게 설명해 주시겠습니까?
select
relname as table
from
pg_stat_user_tables
where schemaname = 'public'
select
tablename as table
from
pg_tables
where schemaname = 'public'
pg_stat_user_tables
사용하지 않으면 채워지지 않을 수 있습니다 track_activities
. pg_tables
또는 "공식"API를 사용하는 information_schema.table
것이 훨씬 좋습니다.
어떻게 그냥주는 약 \dt
에 psql
? https://www.postgresql.org/docs/current/static/app-psql.html을 참조 하십시오 .
SELECT table_name
FROM information_schema.tables
WHERE table_type='BASE TABLE'
AND table_schema='public';
MySQL의 경우 table_schema = 'dbName'이 필요하며 MSSQL의 경우 해당 조건을 제거하십시오.
"현재 사용자가 액세스 할 수있는 테이블과 뷰만 표시됩니다". 또한 많은 데이터베이스에 액세스 할 수 있고 결과를 특정 데이터베이스로 제한하려는 경우 AND table_catalog = 'yourDatabase'(PostgreSQL) 조건을 추가하여이를 달성 할 수 있습니다.
행 이름을 표시하는 머리글과 행 수를 표시하는 바닥 글을 제거하려면 명령 행 옵션 -t (--tuples-only의 약어)로 psql을 시작하거나 psql의 설정을 전환 할 수 있습니다 명령 줄을 \ t (\ pset tuples_only의 줄임말)로 표시합니다. 이는 예를 들어 \ g [| command]를 사용하여 출력을 다른 명령으로 파이핑 할 때 유용 할 수 있습니다.