sourcecode

Psql 모든 표 나열

codebag 2023. 5. 3. 21:23
반응형

Psql 모든 표 나열

모든 테이블을 목록에 표시합니다.liferay내 Postgre의 데이터베이스SQL 설치.그걸 어떻게 하는 거죠?

나는 실행하고 싶습니다.SELECT * FROM applications;에서liferay데이터베이스 applications내 인생의 db에 있는 테이블입니다.어떻게 하는 거지?

다음은 모든 데이터베이스 목록입니다.

postgres=# \list
                              List of databases
Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
 -----------+----------+----------+-------------+-------------+-----------------------
 liferay   | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =Tc/postgres         +
           |          |          |             |             | postgres=CTc/postgres+
           |          |          |             |             | liferay=CTc/postgres
 lportal   | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 postgres  | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 template0 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(5 rows)

postgres=# 

모든 테이블을 나열하려면 다음을 사용해야 합니다.

\dt *.*

모든 스키마의 모든 테이블을 표시합니다.여기에는 테이블이 포함됩니다.pg_catalog시스템 테이블 및 에 있는 테이블information_schema"모든 사용자 정의 스키마의 모든 테이블"이라고 말할 수 있는 내장된 방법은 없지만 다음과 같이 설정할 수 있습니다.search_path실행하기 전에 관심 있는 모든 스키마 목록으로\dt.

프로그래밍 방식으로 이 작업을 수행할 수 있습니다. 이 경우psql백슬래시-스캐너로는 그 일을 할 수 없습니다.여기가 그가 구조하러 오는 입니다.테이블을 나열하는 방법:

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

BTW, 만약 당신이 보고 싶다면.psql백슬래시 명령에 대한 응답으로 실행 중입니다.psql와 함께-E플래그(예:

$ psql -E regress    
regress=# \list
********* QUERY **********
SELECT d.datname as "Name",
       pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
       pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
       d.datcollate as "Collate",
       d.datctype as "Ctype",
       pg_catalog.array_to_string(d.datacl, E'\n') AS "Access privileges"
FROM pg_catalog.pg_database d
ORDER BY 1;
**************************

그래서 당신은 그것을 볼 수 있습니다.psql검색 중pg_catalog.pg_database데이터베이스 목록을 가져올 때 사용합니다.마찬가지로, 지정된 데이터베이스 내의 테이블의 경우:

SELECT n.nspname as "Schema",
  c.relname as "Name",
  CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as "Type",
  pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
      AND n.nspname <> 'pg_catalog'
      AND n.nspname <> 'information_schema'
      AND n.nspname !~ '^pg_toast'
  AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;

휴대용 SQL 표준을 사용하는 것이 좋습니다.INFORMATION_SCHEMA가능한 경우 Pg 시스템 카탈로그 대신 Pg 관련 정보가 필요할 수도 있습니다.그런 경우에는 시스템 카탈로그를 직접 조회해도 됩니다.psql -E방법에 대한 유용한 지침이 될 수 있습니다.

데이터베이스에 연결한 다음 테이블을 나열합니다.

\c liferay
\dt

어쨌든 저는 그렇게 해요.

원하는 경우 두 명령을 한 줄로 결합할 수 있습니다.

\c liferay \dt

수행할 수 있는 공용 테이블 보기

표를 나열하다

\dt

목록 테이블, 보기 및 액세스 권한

\dp or \z

또는 테이블 이름만

select table_name from information_schema.tables where table_schema = 'public';

SQL 쿼리에서 다음 코드를 작성할 수 있습니다.

select table_name from information_schema.tables where table_schema='YOUR_TABLE_SCHEME';

테이블 구성표를 YOR_로 바꿉니다.TABLE_SCHEMA;

예:

select table_name from information_schema.tables where table_schema='eLearningProject';

모든 구성표 및 모든 테이블을 보려면 where 절이 필요하지 않습니다.

select table_name from information_schema.tables

한 줄로 된 예는 다음과 같습니다.

\dt schemaname.* 

시나리오에서:

\dt public.*

스키마 목록을 가져오려면 다음과 같이 하십시오.

\dn

참고:public지정된 스키마가 없을 때 기본 스키마입니다.설명서 인용:

이전 섹션에서는 스키마 이름을 지정하지 않고 테이블을 만들었습니다.기본적으로 이러한 테이블(및 기타 개체)은 "public"이라는 이름의 스키마에 자동으로 배치됩니다.모든 새 데이터베이스는 이러한 스키마를 포함합니다.

사용.\dt *.*다음과 같은 내부 테이블을 포함하여 모든 스키마에 있는 모든 테이블의 긴 목록을 출력합니다.pg_catalog위의 내용은 필터링에 도움이 됩니다.

모든 스키마에 모든 테이블이 필요하지 않은 경우 자동화 스크립트에서 사용할 수 있습니다.

  for table in $(psql -qAntc '\dt' | cut -d\| -f2); do
      ...
  done

언급URL : https://stackoverflow.com/questions/12445608/psql-list-all-tables

반응형