O Tablestore SDK for PHP cria uma tabela de mapeamento para uma tabela ou índice de pesquisa existente, permitindo o acesso aos dados via SQL.
Para mais informações, consulte Crie uma tabela de mapeamento para uma tabela e Crie tabelas de mapeamento para índices de pesquisa.
Observações de uso
O recurso de consulta SQL é compatível com o Tablestore SDK for PHP V5.1.0 ou superior. Instale uma versão compatível.
Para consultar o histórico de versões do Tablestore SDK for PHP, acesse Version history of Tablestore SDK for PHP .
Pré-requisitos
Um cliente está inicializado. Para mais informações, consulte Initialize a Tablestore client.
-
Se você quiser criar uma tabela de mapeamento para um índice de pesquisa, primeiro crie o índice de pesquisa.
Parâmetros
SQLQueryRequest contém o seguinte parâmetro.
|
Nome |
Tipo |
Descrição |
|
query (obrigatório) |
String |
A instrução |
Exemplos
Este tópico descreve como criar uma tabela de mapeamento para uma tabela. Para criar uma tabela de mapeamento para um índice de pesquisa, substitua a instrução SQL no código de exemplo pela instrução SQL usada na criação de uma tabela de mapeamento para um índice de pesquisa.
O exemplo a seguir mostra como usar a instrução CREATE TABLE para criar uma tabela de mapeamento para a tabela tableName.
$request = array(
'query' => 'CREATE TABLE `tableName` (`PK0` BIGINT(20),`PK1` VARCHAR(1024),`geo` MEDIUMTEXT,`boolean` BOOL,`array` MEDIUMTEXT,`double` DOUBLE,`text` MEDIUMTEXT,`keyword` MEDIUMTEXT,`nested` MEDIUMTEXT,`long` BIGINT(20),PRIMARY KEY(`PK0`,`PK1`));',
);
$response = $otsClient->sqlQuery($request);
print json_encode($response, JSON_PRETTY_PRINT);
Perguntas frequentes
O que fazer se a mensagem de erro "Table 'instancename.tablename' doesn't exist ?" for retornada ao criar uma tabela de mapeamento?
-
Causa possível
A tabela para a qual você deseja criar uma tabela de mapeamento não existe.
-
Solução
Execute a instrução CREATE TABLE em SQL apenas para criar uma tabela de mapeamento para uma tabela ou índice de pesquisa existente. Verifique se a tabela ou o índice de pesquisa para o qual você deseja criar a tabela de mapeamento realmente existe.
O que fazer se a mensagem de erro "Table 'instancename.tablename' already exist?" for retornada ao criar uma tabela de mapeamento?
-
Causa possível
Já existe uma tabela de mapeamento para a tabela.
O usuário criou manualmente uma tabela de mapeamento para a tabela.
O Tablestore criou automaticamente uma tabela de mapeamento para a tabela. Se você usar diretamente instruções SQL (como DESCRIBE, SELECT, etc.) para consultar dados em uma tabela de dados sem criar uma tabela de mapeamento para ela, o Tablestore criará automaticamente uma tabela de mapeamento para essa tabela de dados. A tabela de mapeamento criada automaticamente contém apenas as colunas de chave primária e as colunas predefinidas da tabela de dados. Não é possível atualizar as colunas de atributo dessa tabela de mapeamento.
-
Solução
Execute a instrução
DESCRIBEpara consultar o esquema da tabela de mapeamento. Se o esquema não atender aos seus requisitos de negócios, você pode atualize as colunas de atributo da tabela de mapeamento. Se a tabela de mapeamento tiver sido criada automaticamente pelo Tablestore, não será possível atualizar as colunas de atributo. Nesse caso, exclua a tabela de mapeamento e crie uma nova, desde que você tenha certeza de que seus negócios não serão afetados após a exclusão.
Para erros comuns e soluções do recurso de consulta SQL, consulte Troubleshoot common SQL query errors.
Referências
Após criar uma tabela de mapeamento, atualize as colunas de atributo da tabela de mapeamento, consulte informações da tabela de mapeamento, consulte os nomes das tabelas de mapeamento, consulte as informações de índice da tabela de mapeamento e exclua a tabela de mapeamento. Para mais informações, consulte Atualize as colunas de atributo de uma tabela de mapeamento, Query information about a table, List the names of mapping tables, Query the index information about a table e Exclua uma tabela de mapeamento.
Use a instrução SELECT para consultar e analisar dados em uma tabela de mapeamento. Para mais informações, consulte Query data.