PostgreSQL 언어 데이터베이스에 대한 정보 스키마

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

정보 스키마는 모든 PostgreSQL 데이터베이스에 공통된 기본 제공 스키마입니다. information_schema의 테이블에 대해 SQL 쿼리를 실행하여 데이터베이스의 스키마 메타데이터를 가져올 수 있습니다.

예를 들어 다음 쿼리는 데이터베이스의 모든 사용자 정의 테이블 이름을 가져옵니다.

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

사용

  • information_schema 테이블은 다음과 같은 SQL 인터페이스를 통해서만 사용할 수 있습니다.

    • executeQuery API
    • gcloud spanner databases execute-sql 명령어
    • Google Cloud Console의 데이터베이스 쿼리 페이지

    다른 단일 읽기 메서드는 information_schema를 지원하지 않습니다.

PostgreSQL용 information_schema와의 차이점

PostgreSQL 언어 데이터베이스용 information_schema의 테이블에는 오픈소스 PostgreSQL용 information_schema에 있는 테이블의 열이 포함되며 경우에 따라 Spanner의 열도 포함됩니다. 이 테이블에는 오픈소스 PostgreSQL 열이 먼저 오픈소스 PostgreSQL 데이터베이스와 동일한 순서로 나열되고, 그 다음에 Spanner의 모든 고유 열이 추가됩니다. information_schema의 오픈소스 PostgreSQL 버전용으로 작성된 쿼리가 Google Cloud CLI에서 PostgreSQL 언어 데이터베이스를 사용할 때 수정 없이 작동해야 합니다.

PostgreSQL 언어 데이터베이스용 information_schema의 중요한 차이는 다음과 같습니다.

  • 오픈소스 PostgreSQL의 일부 테이블 열을 사용할 수 있지만 PostgreSQL 언어 데이터베이스에 채워지지는 않습니다.
  • PostgreSQL 언어 데이터베이스에는 기본 스키마 이름으로 public이 사용됩니다.
  • 자동 생성된 제약조건 이름에 오픈소스 PostgreSQL 데이터베이스와 다른 형식이 사용됩니다.
  • PostgreSQL 언어 데이터베이스에서 지원되지 않는 오픈소스 PostgreSQL 기능과 관련된 테이블은 제공되지 않습니다.
  • database_options, index_columns, indexes, spanner_statistics 등 Spanner에서 제공하지만 오픈소스 PostgreSQL이 아닌 일부 테이블은 사용할 수 있습니다.

PostgreSQL 언어 데이터베이스용 information_schema의 테이블

information_schema의 테이블과 뷰는 오픈소스 PostgreSQLinformation_schema에 있는 테이블 및 뷰와 호환됩니다.

다음 섹션에서는 PostgreSQL 언어 데이터베이스에 대한 information_schema의 테이블 및 보기에 대해 설명합니다.

change_stream_columns

이 보기에는 데이터베이스의 열과 변경 내역 간의 관계가 포함됩니다. 각 행은 변경 내역 1개 및 데이터베이스 열 1개와 관련됩니다.

change_stream_columns의 데이터에는 열과 해당 열의 전체 테이블을 추적하는 변경 내역 간의 암시적 관계가 포함되지 않습니다.

열 이름 유형 설명
change_stream_catalog character varying 데이터베이스 이름입니다.
change_stream_schema character varying 변경 내역의 스키마 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
change_stream_name character varying 변경 내역의 이름입니다.
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 테이블의 스키마 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
table_name character varying 이 행이 참조하는 테이블의 이름입니다.
column_name character varying 이 행이 참조하는 열의 이름입니다.

change_stream_options

이 보기에는 변경 내역의 구성 옵션이 있습니다.

열 이름 유형 설명
change_stream_catalog character varying 데이터베이스 이름입니다.
change_stream_schema character varying 변경 내역의 스키마 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
change_stream_name character varying 변경 내역의 이름입니다.
option_name character varying 변경 내역 옵션의 이름입니다.
option_type character varying 변경 내역 옵션의 데이터 유형입니다.
option_value character varying 변경 내역 옵션의 값입니다.

change_stream_tables

이 보기에는 데이터베이스의 테이블과 변경 내역 간의 관계가 포함됩니다. 각 행은 데이터베이스 테이블 1개 및 변경 내역 1개와 관련됩니다.

change_stream_tables의 데이터에는 전체 데이터베이스를 추적하는 테이블과 변경 내역 간의 암시적 관계가 포함되지 않습니다.

열 이름 유형 설명
change_stream_catalog character varying 데이터베이스 이름입니다.
change_stream_schema character varying 변경 내역의 스키마 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
change_stream_name character varying 이 행이 참조하는 변경 내역의 이름입니다.
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 테이블의 스키마 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
table_name character varying 이 행이 참조하는 테이블의 이름입니다.
all_columns character varying 이 행의 변경 내역에서 이 행이 참조하는 테이블 전체를 추적하면 YES입니다. 그 이외의 경우 NO를 사용합니다. SQL 표준에 따라 이 문자열은 불리언 값이 아닌 YES 또는 NO입니다.

change_streams

다음 보기에는 데이터베이스의 모든 변경 내역이 나와 있으며 전체 데이터베이스를 추적하는지 아니면 특정 테이블이나 열을 추적하는지 보여줍니다.

열 이름 유형 설명
change_stream_catalog character varying 데이터베이스 이름입니다.
change_stream_schema character varying 이 변경 내역의 스키마 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
change_stream_name character varying 변경 내역의 이름입니다.
all character varying 이 변경 내역이 전체 데이터베이스를 추적하면 YES입니다. 이 변경 내역이 특정 테이블이나 열을 추적하면 NO입니다. SQL 표준에 따라 이 문자열은 불리언 값이 아닌 YES 또는 NO입니다.

check_constraints

CHECK 또는 NOT NULL 키워드로 정의된 확인 제약조건마다 행이 하나씩 check_constraints 뷰에 포함됩니다.

열 이름 유형 설명
constraint_catalog character varying 데이터베이스 이름입니다.
constraint_schema character varying 제약조건 스키마의 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
constraint_name character varying 제약조건의 이름입니다. 제약조건 이름이 스키마에 명시적으로 지정되지 않았으면 자동 생성된 이름이 사용됩니다.
check_clause character varying 확인 제약조건의 표현식입니다.
spanner_state character varying 확인 제약조건의 현재 상태입니다. 가능한 상태는 다음과 같습니다.
  • VALIDATING: PostgreSQL 언어 데이터베이스가 `ALTER CONSTRAINT` 또는 `ADD CONSTRAINT` 명령어에 대한 기존 데이터를 검증합니다.
  • COMMITTED: 이 제약조건에 활성 스키마 변경이 없습니다.

column_column_usage

이 보기에는 동일 테이블의 다른 기본 열에 의존하는 모든 생성된 열이 나열됩니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 테이블이 포함된 스키마의 이름입니다. 이 이름은 기본 스키마에서는 `public`이고 다른 스키마의 경우 비어 있지 않습니다(예: information_schema 자체). 이 열은 null이 아닙니다.
table_name character varying 생성된 열이 있는 테이블의 이름입니다.
column_name character varying 생성된 열이 종속되는 기본 열의 이름입니다.
dependent_column character varying 생성된 열의 이름입니다.

column_options

이 뷰에는 외래 키 제약조건의 참조된 테이블 열에 정의된 모든 옵션이 나열됩니다. 이 뷰에는 현재 사용자가 (소유자로서 또는 권한 부여를 통해) 액세스할 수 있는 참조 테이블의 열만 포함됩니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 외래 테이블이 포함된 스키마의 이름입니다. 이 이름은 기본 스키마에서는 `public`이고 다른 스키마의 경우 비어 있지 않습니다(예: information_schema 자체). 이 열은 null이 아닙니다.
table_name character varying 외래 테이블의 이름입니다.
column_name character varying 열의 이름입니다.
option_name character varying 옵션을 고유하게 식별하는 SQL 식별자입니다. 이 식별자는 DDL의 OPTIONS 절 키입니다.
option_value character varying 이 옵션의 값을 설명하는 SQL 리터럴입니다. 이 열의 값은 쿼리의 일부로 파싱될 수 있습니다.
option_type character varying 이 옵션 값의 유형인 데이터 유형 이름입니다.

columns

이 보기는 데이터베이스에 있는 모든 테이블 열(또는 보기 열)에 대한 정보를 제공합니다. 이 보기에는 현재 사용자가 액세스할 수 있는 열만 포함됩니다(소유자 또는 부여된 권한).

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 테이블이 포함된 스키마의 이름입니다. 이 이름은 기본 스키마에서는 `public`이고 다른 스키마의 경우 비어 있지 않습니다(예: information_schema 자체). 이 열은 null이 아닙니다.
table_name character varying 테이블의 이름입니다.
column_name character varying 열 이름
ordinal_position BIGINT 테이블에서 열의 서수 위치이며 값 1부터 시작합니다.
column_default character varying 열의 기본값에 대한 오픈소스 PostgreSQL 표현식의 문자열 표현입니다. 예를 들면 '9'::bigint입니다.
is_nullable character varying 이 열에서 null을 사용할 수 있는지를 나타내는 문자열입니다. SQL 표준에 따라 이 문자열은 부울 값이 아닌 YES 또는 NO입니다.
data_type character varying 열의 데이터 유형입니다. 값은 다음 중 하나입니다.
  • 기본 제공 유형의 경우 데이터 유형의 이름입니다.
  • 배열의 경우 값은 ARRAY입니다. 데이터 유형에 대한 자세한 내용은 `element_types` 뷰를 참조하세요.
character_maximum_length BIGINT 문자 및 비트 문자열 데이터 유형의 선언된 최대 길이입니다. 최대 길이가 지정되지 않았으면 값이 `NULL`입니다. 열의 데이터 유형이 문자 또는 비트 문자열이 아니면 값이 `NULL`입니다.
character_octet_length BIGINT 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
numeric_precision BIGINT 현재 열의 숫자 데이터 유형 정밀도입니다. `배정밀도`의 경우 값이 53입니다. `bigint`의 경우 값이 64입니다. 다른 모든 데이터 유형의 경우에는 값이 `NULL`입니다.
numeric_precision_radix BIGINT 숫자 유형에 대한 정밀도의 기준(단위)입니다. 현재는 두 가지 값만 지원됩니다.
  • `double precision`, `float8`, `bigint`의 경우 값은 2입니다.
  • `numeric`의 경우 값은 10입니다.
다른 모든 데이터 유형의 경우에는 값이 `NULL`입니다.
numeric_scale BIGINT radix 포인트 이후 정밀도 기준 단위 수인 숫자 열 유형의 크기를 포함합니다. `bigint`의 경우 값이 0입니다. 다른 모든 데이터 유형의 경우에는 값이 `NULL`입니다.
datetime_precision BIGINT 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
interval_type character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
interval_precision BIGINT 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
character_set_catalog character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
character_set_schema character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
character_set_name character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
collation_catalog character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
collation_schema character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
collation_name character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
domain_catalog character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
domain_schema character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
domain_name character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
udt_catalog character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
udt_schema character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
udt_name character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
scope_catalog character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
scope_schema character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
scope_name character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
maximum_cardinality BIGINT 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
dtd_identifier character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
is_self_referencing character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
is_identity character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
identity_generation character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
identity_start character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
identity_increment character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
identity_maximum character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
identity_minimum character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
identity_cycle character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
is_generated character varying 열이 생성되는지를 나타내는 문자열입니다. 문자열은 생성 열의 경우 ALWAYS이거나 생성되지 않은 열의 경우 NEVER입니다.
generation_expression character varying 생성된 열의 SQL 표현식을 나타내는 문자열 또는 열이 생성된 열이 아닌 경우 NULL입니다.
is_updatable character varying 현재 사용되지 않습니다. 값이 항상 `NULL`입니다.
spanner_type character varying 열의 DDL 호환 유형이 저장되는 문자열입니다.
is_stored character varying 생성 열이 저장되는지를 나타내는 문자열입니다. 문자열은 생성된 열의 경우 항상 YES 또는 NO이고 생성되지 않은 열의 경우 NULL입니다.
spanner_state character varying 열의 현재 상태입니다. 기존 테이블에 추가된 새롭게 저장되고 생성된 열은 완전히 사용되기 전에 사용자가 관찰 가능한 여러 상태를 거쳐갈 수 있습니다. 가능한 값은 다음과 같습니다.
  • NO_WRITE: 열에 대해 읽기 또는 쓰기가 허용되지 않습니다. 이 상태로 생성된 열은 어떠한 클라이언트 효과도 일으키지 않습니다.
  • WRITE_ONLY: 열이 백필됩니다. 읽기가 허용되지 않습니다.
  • COMMITTED: 열을 완전히 사용할 수 있습니다.
  • NULL: 시스템 스키마의 열에 사용됩니다.

constraint_column_usage

이 뷰에는 제약조건에 사용되는 각 열에 대한 행 하나가 포함됩니다.

  • NOT NULL 키워드로 정의된 PRIMARY KEYCHECK 제약조건의 경우 보기에 해당 열이 포함됩니다.
  • CHECK 키워드로 생성된 CHECK 제약조건의 경우 확인 제약조건 표현식에 사용되는 열이 뷰에 포함됩니다.
  • 외래 키 제약조건의 경우 참조된 테이블의 열이 뷰에 포함됩니다.
  • UNIQUE 제약조건의 경우 KEY_COLUMN_USAGE의 열이 뷰에 포함됩니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 제약조건에 사용되는 열이 포함된 테이블이 있는 스키마의 이름입니다.
table_name character varying 제약조건에 사용되는 열이 포함된 테이블의 이름입니다.
column_name character varying 제약조건에 사용되는 열의 이름입니다.
constraint_catalog character varying 데이터베이스 이름입니다.
constraint_schema character varying 제약조건 스키마의 이름입니다.
constraint_name character varying 제약조건의 이름입니다.

constraint_table_usage

이 보기에는 제약조건에 사용되는 각 테이블에 대해 하나의 행이 포함됩니다. FOREIGN KEY 제약조건의 경우 테이블 정보는 REFERENCES 절의 테이블에 대한 정보입니다. 고유 또는 기본 키 제약조건의 경우 이 보기는 단순히 제약조건이 포함된 테이블을 식별합니다. 검사 제약조건과 not 아님 제약조건은 이 보기에 포함되지 않습니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 제한된 테이블의 스키마 이름입니다.
table_name character varying 일부 제약조건에 사용되는 테이블 이름입니다.
constraint_catalog character varying 데이터베이스 이름입니다.
constraint_schema character varying 제약조건이 포함된 스키마 이름입니다.
constraint_name character varying 제약조건의 이름입니다.

database_options

이 테이블에는 데이터베이스에 설정된 옵션이 나열됩니다.

열 이름 유형 설명
catalog_name character varying 데이터베이스 이름입니다.
schema_name character varying 스키마의 이름입니다. PostgreSQL 언어 데이터베이스의 경우 기본값은 'public'입니다.
option_name character varying 데이터베이스 옵션의 이름입니다. DDL의 'OPTIONS' 절에 있는 'key'의 값입니다.
option_type character varying 데이터베이스 옵션의 데이터 유형입니다.
option_value character varying 데이터베이스 옵션의 값입니다.

index_columns

이 테이블에는 색인의 열이 나열됩니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 색인이 포함된 스키마 이름입니다. 기본값은 `public`입니다.
table_name character varying 색인과 연관된 테이블 이름입니다.
index_name character varying 색인의 이름입니다. `PRIMARY KEY` 사양이 있는 테이블에는 `PRIMARY_KEY` 이름으로 생성된 유사 색인 항목이 있습니다.
index_type character varying 색인의 유형입니다. 가능한 값은 `PRIMARY_KEY`, `LOCAL`, `GLOBAL`입니다.
column_name character varying 열의 이름입니다.
ordinal_position BIGINT 색인에서 열의 서수 위치이며 값 1부터 시작합니다. 이 값은 키가 아닌 열(예: 색인의 INCLUDE에 지정된 열)의 NULL입니다.
column_ordering character varying 열의 정렬 순서입니다. 값은 키 열의 경우 ASC 또는 DESC이고 키 열이 아닌(예: 색인의 STORING 절에 지정된 열) 경우 NULL입니다.
is_nullable character varying 이 열에서 null을 사용할 수 있는지를 나타내는 문자열입니다. SQL 표준에 따라 이 문자열은 부울 값이 아닌 YES 또는 NO입니다.
spanner_type character varying 열의 DDL 호환 유형이 저장되는 문자열입니다.

indexes

이 뷰에는 스키마의 색인이 나열됩니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 스키마의 이름입니다. 기본값은 `public`입니다.
table_name character varying 테이블의 이름입니다.
index_name character varying 색인의 이름입니다. PRIMARY KEY 절로 생성된 테이블에는 이름이 PRIMARY_KEY로 생성된 유사 색인 항목이 있습니다. 이를 통해 기본 키의 필드를 식별할 수 있습니다.
index_type character varying 색인의 유형입니다. 값에는 PRIMARY_KEY, LOCAL, GLOBAL이 포함됩니다.
parent_table_name character varying 보조 색인 만들기에 설명된 대로 보조 색인은 상위 테이블에서 인터리브 처리될 수 있습니다. 이 열에는 상위 테이블의 이름이 있습니다. 색인이 인터리브 처리되지 않은 경우에는 NULL입니다.
is_unique character varying 색인 키가 고유해야 하는지 여부입니다. SQL 표준에 따라 이 문자열은 부울 값이 아닌 YES 또는 NO입니다.
is_null_filtered character varying 색인에 NULL 값이 있는 항목을 포함하는지 여부입니다. SQL 표준에 따라 이 문자열은 부울 값이 아닌 YES 또는 NO입니다.
index_state character varying 색인의 현재 상태입니다. 가능한 값과 나타내는 상태는 다음과 같습니다.
  • NULL: 색인 유형이 `PRIMARY_KEY`입니다.
  • PREPARE: 새 색인의 빈 테이블을 만듭니다.
  • WRITE_ONLY: 새 색인의 데이터를 백필합니다.
  • WRITE_ONLY_CLEANUP: 새 색인을 삭제합니다.
  • WRITE_ONLY_VALIDATE_UNIQUE: 새 색인에서 데이터 고유성을 확인합니다.
  • READ_WRITE: 정상 색인 작업입니다.
spanner_is_managed character varying 색인이 Spanner에서 관리되는지 여부입니다. 예를 들어 외래 키의 보조 지원 색인은 Spanner에서 관리합니다. 문자열은 SQL 표준에 따라 부울 값 대신 YES 또는 NO입니다.

information_schema_catalog_name

이 테이블에는 데이터베이스 이름을 포함하는 하나의 행 및 하나의 열이 포함되어 있습니다.

열 이름 유형 설명
catalog_name character varying 데이터베이스 이름입니다.

key_column_usage

이 보기는 고유, 기본 키 또는 외래 키 제약조건으로 참조되는 현재 데이터베이스의 모든 열을 식별합니다. CHECK 제약조건 열에 대한 자세한 내용은 check_constraints 보기를 참조하세요.

열 이름 유형 설명
constraint_catalog character varying 데이터베이스 이름입니다.
constraint_schema character varying 제약조건 스키마의 이름입니다. 기본값은 `public`입니다.
constraint_name character varying 제약조건의 이름입니다.
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 제한된 열이 포함된 테이블을 포함하는 스키마의 이름입니다. 기본값은 `public`입니다.
table_name character varying 이 제약조건으로 제한되는 열을 포함하는 테이블의 이름입니다.
column_name character varying 제한된 열의 이름입니다.
ordinal_position BIGINT 1 값으로 시작하는 제약조건 키 내 열의 서수 위치입니다.
position_in_unique_constraint BIGINT FOREIGN KEY의 경우 1 값으로 시작하는 고유 제약조건 내 열의 서수 위치입니다. 다른 제약조건 유형의 경우 이 열에 `NULL` 값이 포함됩니다.

referential_constraints

이 뷰에는 각 FOREIGN KEY 제약조건에 대해 하나의 행이 포함됩니다. 참조 테이블에 대해 쓰기 액세스 권한이 있는 제약조건만 볼 수 있습니다. 또한 이 보기는 외래 키에서 제약조건 적용 및 참조 작업을 위해 사용되는 참조 테이블의 PRIMARY KEYUNIQUE 제약조건을 식별합니다.

열 이름 유형 설명
constraint_catalog character varying 데이터베이스 이름입니다.
constraint_schema character varying 외래 키 제약조건을 포함하는 스키마의 이름입니다. 기본값은 `public`입니다.
constraint_name character varying 외래 키 제약조건의 이름입니다.
unique_constraint_catalog character varying 데이터베이스 이름입니다.
unique_constraint_schema character varying 외래 키 제약조건이 참조하는 고유 또는 기본 키 제약조건을 포함하는 스키마의 이름입니다.
unique_constraint_name character varying 외래 키 제약조건이 참조하는 고유 또는 기본 키 제약조건의 이름입니다.
match_option character varying 외래 키 제약조건에 사용되는 일치 메서드입니다. 이 값은 항상 NONE입니다.
update_rule character varying 외래 키 제약조건의 업데이트 규칙입니다. 이 값은 항상 NO ACTION입니다.
delete_rule character varying 외래 키 제약조건의 삭제 규칙입니다. 이 값은 항상 NO ACTION입니다.
spanner_state character varying 외래 키의 현재 상태입니다. 외래 키의 지원 색인이 생성되고 백필될 때까지 Spanner에서 제약조건 적용이 시작되지 않습니다. 색인이 준비되면 Spanner가 기존 데이터를 검사하는 동안 새 트랜잭션에 대해 제약조건 적용을 시작합니다. 가능한 값과 나타내는 상태는 다음과 같습니다.
  • BACKFILLING_INDEXES: 색인이 백필되고 있습니다.
  • VALIDATING_DATA: 기존 데이터와 새 쓰기를 검사 중입니다.
  • WAITING_FOR_COMMIT: 외래 키 대량 작업이 성공적으로 완료되었거나 아무것도 필요하지 않습니다. 그렇지만 외래 키가 아직 대기 중입니다.
  • COMMITTED: 스키마 변경사항이 커밋되었습니다.

schemata

information_schema.schemata 보기에는 현재 데이터베이스에 있는 각 스키마에 대해 하나의 행이 포함되어 있습니다. 스키마에는 정보 스키마와 public이라는 기본 스키마가 포함됩니다.

열 이름 유형 설명
catalog_name character varying 데이터베이스 이름입니다.
schema_name character varying 스키마의 이름입니다. 기본 스키마에서는 'public'으로 설정되고 이름이 지정된 스키마의 경우 비어 있지 않습니다.
schema_owner character varying 스키마 소유자의 이름입니다.
default_character_set_catalog character varying 현재 사용되지 않습니다.
default_character_set_schema character varying 현재 사용되지 않습니다.
default_character_set_name character varying 현재 사용되지 않습니다.
sql_path character varying 현재 사용되지 않습니다.
effective_timestamp timestamp with timezone 이 스키마의 모든 데이터가 적용된 타임스탬프입니다. 현재는 기본 스키마에만 사용됩니다.

spanner_statistics

이 테이블에는 사용 가능한 쿼리 최적화 도구 통계 패키지가 나열되어 있습니다.

열 이름 유형 설명
catalog_name character varying 데이터베이스 이름입니다.
schema_name character varying 스키마의 이름입니다. 기본 스키마 값은 `public`입니다.
package_name character varying 통계 패키지의 이름입니다.
allow_gc character varying 통계 패키지가 가비지 컬렉션에서 제외되는지 여부입니다. SQL 표준에 따라 이 문자열은 부울 값이 아닌 YES 또는 NO입니다. 힌트로 또는 클라이언트 API를 통해 통계 패키지를 참조하려면 먼저 이 속성을 NO로 설정해야 합니다.

table_constraints

이 뷰에는 현재 사용자가 액세스할 수 있는 테이블에 속하는 모든 제약조건이 포함됩니다(SELECT 제외).

열 이름 유형 설명
constraint_catalog character varying 데이터베이스 이름입니다.
constraint_schema character varying 제약조건이 포함된 스키마 이름입니다.
constraint_name character varying 제약조건의 이름입니다.
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 제약조건과 연결된 테이블을 포함하는 스키마의 이름입니다.
table_name character varying 테이블의 이름입니다.
constraint_type character varying 제약조건의 유형입니다. 가능한 값은 다음과 같습니다.
  • CHECK
  • FOREIGN KEY
  • PRIMARY KEY
  • UNIQUE
is_deferrable character varying 이 값은 항상 NO입니다.
initially_deferred character varying 이 값은 항상 NO입니다.
enforced character varying 제약조건 적용 여부입니다. 제약조건이 적용되면(특정 상태에 도달한 이후) 쓰기 시 그리고 백그라운드 무결성 확인자 모두에서 검증됩니다. SQL 표준에 따라 이 문자열은 부울 값이 아닌 YES 또는 NO입니다.

tables

이 보기에는 현재 데이터베이스의 모든 테이블과 보기가 포함됩니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 테이블 또는 뷰가 포함된 스키마의 이름입니다.
table_name character varying 테이블 또는 뷰의 이름입니다.
table_type character varying 테이블 유형. 가능한 값은 'BASE TABLE' 및 'VIEW'입니다.
self_referencing_column_name character varying 현재 사용되지 않습니다.
reference_generation character varying 현재 사용되지 않습니다.
user_defined_type_catalog character varying 현재 사용되지 않습니다.
user_defined_type_schema character varying 현재 사용되지 않습니다.
user_defined_type_name character varying 현재 사용되지 않습니다.
is_insertable_into character varying 현재 사용되지 않습니다.
is_typed character varying 현재 사용되지 않습니다.
commit_action character varying 현재 사용되지 않습니다.
parent_table_name character varying 이 테이블이 인터리브 처리된 경우 상위 테이블의 이름이고 그렇지 않은 경우 NULL입니다.
on_delete_action character varying 인터리브 처리된 테이블의 경우 CASCADE 또는 NO ACTION으로 설정되고 그렇지 않으면 NULL로 설정됩니다. 자세한 내용은 TABLE 문을 참조하세요.
spanner_state character varying 테이블의 현재 생성 상태입니다.
참조된 색인의 백필이 필요한 외래 키로 생성될 때와 같이 대량 작업이 포함된 경우에는 테이블이 만들기 중 여러 상태를 통과할 수 있습니다. 가능한 상태는 다음과 같습니다.
  • ADDING_FOREIGN_KEY: 테이블의 외래 키를 추가합니다.
  • WAITING_FOR_COMMIT: 스키마 변경을 완료합니다.
  • COMMITTED: 테이블을 만들기 위한 스키마 변경이 커밋되었습니다. 변경 사항이 커밋될 때까지 테이블에 쓸 수 없습니다.
  • NULL: 기본 테이블이 아닌 테이블 또는 보기입니다.
interleave_type character varying 이 테이블과 인터리브 처리된 테이블 사이의 상위-하위 관계가 있는지 여부입니다. 가능한 값은 다음과 같습니다.
  • IN: 상위-하위 관계가 없는 `INTERLEAVE IN` 테이블입니다. 이 테이블의 행은 상위 테이블 행과 관계없이 존재할 수 있습니다.
  • IN PARENT: 상위-하위 관계가 있는 `INTERLEAVE IN PARENT` 테이블입니다. 이 테이블의 행은 상위-하위 행이 있어야 합니다.
row_deletion_policy_expression character varying ROW DELETION POLICY를 정의하는 표현식 텍스트가 포함된 문자열입니다.

views

이 뷰에는 스키마의 뷰에 대한 정보가 나열되어 있습니다.

열 이름 유형 설명
table_catalog character varying 데이터베이스 이름입니다.
table_schema character varying 스키마의 이름입니다. 기본값은 `public`입니다.
table_name character varying 뷰의 이름입니다.
view_definition character varying 뷰를 정의하는 쿼리의 SQL 텍스트.
check_option character varying 현재 사용되지 않습니다.
is_updatable character varying 현재 사용되지 않습니다.
is_insertable_into character varying 현재 사용되지 않습니다.
is_trigger_updatable character varying 현재 사용되지 않습니다.
is_trigger_deletable character varying 현재 사용되지 않습니다.
is_trigger_insertable_into character varying 현재 사용되지 않습니다.

Examples

기본 스키마의 각 테이블에 대한 정보를 반환합니다.

SELECT
  t.table_catalog,
  t.table_name,
  t.parent_table_name
FROM
  information_schema.tables AS t
WHERE
  t.table_schema = 'public'
ORDER BY
  t.table_catalog,
  t.table_schema,
  t.table_name

PostgreSQL 언어 데이터베이스의 information_schema에 있는 모든 테이블과 뷰의 이름을 반환합니다.

SELECT table_name
FROM information_schema.tables
WHERE table_schema = "information_schema"

사용자 테이블 my_table의 열에 대한 정보를 반환합니다.

SELECT
  t.ordinal_position,
  t.column_name,
  t.data_type,
  t.spanner_type,
  t.is_nullable
FROM
  information_schema.columns AS t
WHERE
  t.table_schema = 'public'
  AND
  t.table_name = 'my_table'
ORDER BY
  t.ordinal_position

현재 테이블에서 기본 스키마에 있는 각 색인에 대한 정보를 반환합니다.

SELECT
  t.table_name,
  t.index_name,
  t.parent_table_name
FROM
  information_schema.indexes AS t
WHERE
  t.table_schema = 'public'
  AND
  t.index_type != 'PRIMARY_KEY'
ORDER BY
  t.table_schema,
  t.table_name,
  t.index_name

기본값 외의 옵션을 사용하는 모든 열을 반환합니다.

SELECT
  t.table_name,
  t.column_name,
  t.option_type,
  t.option_value,
  t.option_name
FROM
  information_schema.column_options AS t
WHERE
  t.table_schema = 'public'
ORDER BY
  t.table_schema,
  t.table_name,
  t.column_name,
  t.option_name

현재 옵티마이저 관련 데이터베이스 옵션을 반환합니다.

SELECT
  s.option_name,
  s.option_value
FROM
  information_schema.database_options s
WHERE
  s.schema_name=public''
  AND s.option_name IN ('optimizer_version',
    'optimizer_statistics_package')

사용 가능한 모든 통계 패키지를 반환합니다.

SELECT *
FROM information_schema.spanner_statistics;

다음 단계

  • 데이터베이스 문제를 조사하는 데 도움이 되는 이용 가능한 점검 도구 알아보기