programing

모든 테이블 이름을 나열하는 PostgreSQL 쿼리?

abcjava 2023. 5. 16. 22:02
반응형

모든 테이블 이름을 나열하는 PostgreSQL 쿼리?

내 Postgres DB의 모든 테이블을 나열할 수 있는 쿼리가 있습니까?

다음과 같은 질문을 시도했습니다.

SELECT table_name FROM information_schema.tables
                      WHERE table_schema='public' 

그러나 이 쿼리는 보기도 반환합니다.

뷰가 아닌 테이블 이름만 가져오려면 어떻게 해야 합니까?

이 쿼리(수동 설명을 기반으로 함)는 어떻게 됩니까?

SELECT table_name
  FROM information_schema.tables
 WHERE table_schema='public'
   AND table_type='BASE TABLE';

데이터베이스 목록을 원하는 경우

SELECT datname FROM pg_database WHERE datistemplate = false;

모든 데이터베이스의 현재 페이지 설치에서 테이블 목록을 원하는 경우

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.

이게 도움이 되길 바랍니다.

사용해 보십시오.

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema='public' AND table_type='BASE TABLE'

이것은 효과가 있습니다!

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 ]를 사용하여 다른 명령으로 파이프 출력할 때 유용할 수 있습니다.

그냥 주는 게 어때요?\dtpsqlhttps://www.postgresql.org/docs/current/static/app-psql.html 을 참조하십시오.

select 
 relname as table 
from 
 pg_stat_user_tables 
where schemaname = 'public'
  • 트랙 활동가 비활성화된 경우에는 작동하지 않습니다.

select 
  tablename as table 
from 
  pg_tables  
where schemaname = 'public'
  • pg_dll에 대해 자세히 알아보기

언급URL : https://stackoverflow.com/questions/14730228/postgresql-query-to-list-all-table-names

반응형