Todos os produtos
Search
Central de documentação

Tablestore:Criar uma tabela de mapeamento

Última atualização: Jul 30, 2026

O Tablestore SDK for Java cria uma tabela de mapeamento para uma tabela ou índice de pesquisa existente, permitindo o acesso aos dados via SQL.

Pré-requisitos

Descrição

Chame o método sqlQuery para executar uma instrução CREATE TABLE e criar uma tabela de mapeamento para uma tabela ou índice de pesquisa existente.

SQLQueryResponse sqlQuery(SQLQueryRequest request)

Para tabelas de dados, a tabela de mapeamento deve ter o mesmo nome da tabela de dados. Os nomes dos campos não diferenciam maiúsculas de minúsculas, e os tipos de campo devem corresponder aos tipos de campo da tabela de dados. Para índices de pesquisa, personalize o nome da tabela de mapeamento e use ENGINE e ENGINE_ATTRIBUTE para especificar a tabela de dados e o índice de pesquisa.

Para obter detalhes sobre a sintaxe, os tipos de campo e os parâmetros da instrução CREATE TABLE, consulte Operações DDL.

O exemplo a seguir cria uma tabela de mapeamento para a tabela de dados example_table, que contém uma coluna de chave primária do tipo string e quatro colunas de atributo.

String query = "CREATE TABLE example_table ("
        + "pk VARCHAR(1024), "
        + "long_value BIGINT, "
        + "double_value DOUBLE, "
        + "string_value MEDIUMTEXT, "
        + "bool_value BOOL, "
        + "PRIMARY KEY(pk))";
SQLQueryRequest request = new SQLQueryRequest(query);

client.sqlQuery(request);

Parâmetros

SQLQueryRequest contém o seguinte parâmetro.

Nome

Tipo

Descrição

query (obrigatório)

String

Instrução CREATE TABLE que define o nome da tabela de mapeamento, os campos, a chave primária e o mecanismo de consulta. O mapeamento de tabelas de dados e o mapeamento de índices de pesquisa utilizam sintaxes diferentes.

Exemplos de cenários

Criar uma tabela de mapeamento para um índice de pesquisa

Para criar uma tabela de mapeamento para um índice de pesquisa, defina ENGINE como searchindex e especifique a tabela de dados e o índice de pesquisa em ENGINE_ATTRIBUTE. O exemplo abaixo cria uma tabela de mapeamento chamada example_search_table para o índice de pesquisa example_index da tabela de dados example_table.

String tableName = "example_table";
String indexName = "example_index";
String mappingTableName = "example_search_table";
String query = String.format(
        "CREATE TABLE %s (pk MEDIUMTEXT, long_value BIGINT, "
                + "double_value DOUBLE, string_value MEDIUMTEXT, "
                + "bool_value BOOL) ENGINE='searchindex' "
                + "ENGINE_ATTRIBUTE='{\"index_name\":\"%s\","
                + "\"table_name\":\"%s\"}'",
        mappingTableName, indexName, tableName);
SQLQueryRequest request = new SQLQueryRequest(query);

client.sqlQuery(request);

Perguntas frequentes

Erro Table 'instance.table' doesn't exist ao criar uma tabela de mapeamento

Causa: A tabela de dados ou o índice de pesquisa especificado não existe. A instrução CREATE TABLE cria apenas uma tabela de mapeamento para uma tabela de dados ou índice de pesquisa já existente, mas não cria a tabela de dados ou o índice de pesquisa em si.

Solução: Verifique se o nome da tabela de dados ou do índice de pesquisa está correto e confirme se ele existe. Em seguida, execute novamente a instrução CREATE TABLE.

Erro Table 'instance.table' already exists ao criar uma tabela de mapeamento

Causa: A tabela de mapeamento já existe. Ela pode ter sido criada por uma instrução CREATE TABLE ou gerada automaticamente durante a execução de uma instrução DESCRIBE ou SELECT sem uma tabela de mapeamento explícita. Uma tabela de mapeamento criada automaticamente contém apenas as colunas de chave primária e as colunas predefinidas da tabela de dados.

Solução:

  • Para evitar erros quando a tabela de mapeamento já existir, adicione IF NOT EXISTS à instrução CREATE TABLE.

  • Caso precise alterar o esquema da tabela de mapeamento, execute primeiro uma instrução DESCRIBE para visualizar o esquema atual. Use uma instrução ALTER TABLE para modificar uma tabela de mapeamento criada via CREATE TABLE. Tabelas criadas automaticamente não podem ser modificadas. Após avaliar o impacto nas suas cargas de trabalho, execute uma instrução DROP MAPPING TABLE para excluir a tabela de mapeamento e recriá-la.