Esquema de informações

O esquema de informações é um esquema integrado comum a todos os bancos de dados do Cloud Spanner. É possível executar consultas SQL em tabelas no INFORMATION_SCHEMA para buscar metadados de esquema para um banco de dados.

Por exemplo, a consulta a seguir busca os nomes de todas as tabelas definidas pelo usuário em um banco de dados:

SELECT
  table_name
FROM
  information_schema.tables
WHERE
  table_catalog = '' and table_schema = ''

Uso

  • Os dados do INFORMATION_SCHEMA só estão disponíveis por meio de interfaces do SQL (por exemplo, executeQuery e gcloud spanner databases execute-sql). Os outros métodos de leitura única do Cloud Spanner não são compatíveis com o INFORMATION_SCHEMA.
  • É possível usar as consultas do INFORMATION_SCHEMA em uma transação somente leitura, mas não em uma transação de leitura e gravação.
  • É possível usar as consultas do INFORMATION_SCHEMA com inatividades fortes e limitadas ou com limites de carimbo de data/hora de inatividade exata.

Esquemas

A tabela INFORMATION_SCHEMA.SCHEMATA lista os esquemas no banco de dados. Eles incluem o esquema de informações e um esquema sem nome (a partir de agora chamado de "esquema padrão"), que contém as tabelas que você define.

Nome da coluna Tipo Descrição
CATALOG_NAME STRING O nome do catálogo. Esta coluna existe para compatibilidade com tabelas de esquema de informações padrão do SQL. Essa coluna é sempre uma string vazia.
SCHEMA_NAME STRING O nome do esquema. Está vazio para o esquema padrão e não está vazio para esquemas com nome.

Tabelas

A tabela INFORMATION_SCHEMA.TABLES lista as tabelas em um esquema.

Nome da coluna Tipo Descrição
TABLE_CATALOG STRING O nome do catálogo. Essa coluna nunca é nula, mas sempre uma string vazia.
TABLE_SCHEMA STRING O nome do esquema. Essa coluna jamais é nula. O esquema padrão tem uma string vazia, e os esquemas com nome têm uma string não vazia.
TABLE_NAME STRING O nome da tabela.
PARENT_TABLE_NAME STRING O nome da tabela pai, se essa tabela estiver entrelaçada ou NULL.
ON_DELETE_ACTION STRING Isso é definido como CASCADE ou NO ACTION para tabelas entrelaçadas e NULL caso contrário. Consulte as instruções TABLE para mais informações.

Colunas da tabela

A tabela INFORMATION_SCHEMA.COLUMNS lista as colunas de uma tabela.

Nome da coluna Tipo Descrição
TABLE_CATALOG STRING O nome do catálogo. Essa coluna nunca é nula, mas sempre uma string vazia.
TABLE_SCHEMA STRING O nome do esquema. Essa coluna jamais é nula. O esquema padrão tem uma string vazia, e os esquemas com nome têm uma string não vazia.
TABLE_NAME STRING O nome da tabela.
COLUMN_NAME STRING O nome da coluna.
ORDINAL_POSITION INT64 A posição ordinal da coluna na tabela, começando com um valor de 1.
IS_NULLABLE STRING Uma string que indica se a coluna é anulável. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano.
SPANNER_TYPE STRING O tipo de dados da coluna.

Índices

A tabela INFORMATION_SCHEMA.INDEXES lista os índices em um esquema.

Nome da coluna Tipo Descrição
TABLE_CATALOG STRING O nome do catálogo. Essa coluna nunca é nula, mas sempre uma string vazia.
TABLE_SCHEMA STRING O nome do esquema. Essa coluna jamais é nula. O esquema padrão tem uma string vazia, e os esquemas com nome têm uma string não vazia.
TABLE_NAME STRING O nome da tabela.
INDEX_NAME STRING O nome do índice. Tabelas com uma especificação PRIMARY KEY têm uma entrada de pseudoíndice gerada com o nome PRIMARY_KEY, que permite que os campos da chave primária sejam determinados.
INDEX_TYPE STRING O tipo do índice. O tipo é INDEX ou PRIMARY_KEY.
PARENT_TABLE_NAME STRING Os índices secundários podem ser intercalados em uma tabela pai, conforme discutido em Como criar um índice secundário. Essa coluna contém o nome dessa tabela pai ou NULL se o índice não for intercalado.
IS_UNIQUE BOOL Se as chaves do índice precisarem ser exclusivas.
IS_NULL_FILTERED BOOL Se o índice incluir entradas com valores NULL.
INDEX_STATE STRING O estado atual do índice. Os valores possíveis e os estados que eles representam são:
  • PREPARE: criar tabelas vazias para um novo índice.
  • WRITE_ONLY: preencher dados para um novo índice.
  • WRITE_ONLY_CLEANUP: limpar um novo índice.
  • WRITE_ONLY_VALIDATE_UNIQUE: verificar a singularidade dos dados em um novo índice.
  • READ_WRITE: operação de índice normal.

Colunas de índice

A tabela INFORMATION_SCHEMA.INDEX_COLUMNS lista as colunas de um índice.

Nome da coluna Tipo Descrição
TABLE_CATALOG STRING O nome do catálogo. Essa coluna nunca é nula, mas sempre uma string vazia.
TABLE_SCHEMA STRING O nome do esquema. Essa coluna jamais é nula. O esquema padrão tem uma string vazia, e os esquemas com nome têm uma string não vazia.
TABLE_NAME STRING O nome da tabela.
INDEX_NAME STRING O nome do índice.
COLUMN_NAME STRING O nome da coluna.
ORDINAL_POSITION INT64 A posição ordinal da coluna no índice (ou chave primária), começando com um valor de 1. Esse valor é NULL para colunas sem chave (por exemplo, colunas especificadas na cláusula STORING de um índice).
COLUMN_ORDERING STRING O pedido da coluna. O valor é ASC ou DESC para colunas de chave e NULL para colunas não chave (por exemplo, colunas especificadas na cláusula STORING de um índice).
IS_NULLABLE STRING Uma string que indica se a coluna é anulável. De acordo com o padrão SQL, a string é YES ou NO, em vez de um valor booleano.
SPANNER_TYPE STRING O tipo de dados da coluna.

Opções da coluna

A tabela INFORMATION_SCHEMA.COLUMN_OPTIONS lista as opções da coluna em uma tabela.

Nome da coluna Tipo Descrição
TABLE_CATALOG STRING O nome do catálogo. O valor é sempre uma string vazia. Essa coluna jamais é nula.
TABLE_SCHEMA STRING O nome do esquema. O nome está vazio para o esquema padrão e não vazio para outros esquemas (por exemplo, o próprio INFORMATION_SCHEMA). Essa coluna jamais é nula.
TABLE_NAME STRING O nome da tabela. Essa coluna jamais é nula.
COLUMN_NAME STRING O nome da coluna. Essa coluna jamais é nula.
OPTION_NAME STRING Um identificador SQL que identifica com exclusividade a opção. Esse identificador é a chave da cláusula OPTIONS no DDL. Essa coluna jamais é nula.
OPTION_TYPE STRING Um nome do tipo de dados que é o tipo desse valor de opção. Essa coluna jamais é nula.
OPTION_VALUE STRING Um literal SQL que descreve o valor dessa opção. O valor dessa coluna precisa ser analisável como parte de uma consulta. A expressão resultante da análise do valor precisa ser capaz de sofrer cast para OPTION_TYPE. Essa coluna jamais é nula.

Exemplos

Retorne informações sobre cada tabela no esquema do usuário:

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

Retorne informações sobre as colunas na tabela do usuário MyTable:

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

Retorne informações sobre cada índice no esquema do usuário:

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

  t.table_catalog,
  t.table_schema,
  t.table_name,
  t.index_name

Retorna todas as colunas que usam opções diferentes do padrão:

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_catalog = ''
AND
  t.table_schema = ''

A seguir

Saiba mais sobre outros metadados que o Cloud Spanner armazena para cada banco de dados nas tabelas de estatísticas de consulta do banco de dados.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Spanner