Tablestore SDK for PHP crea una tabla de mapeo para una tabla o un índice de búsqueda existente. Esto permite acceder a los datos mediante SQL.
Para obtener más información, consulte Create a mapping table for a table y Create mapping tables for search indexes.
Notas de uso
Las consultas SQL son compatibles con Tablestore SDK for PHP V5.1.0 y versiones posteriores. Compruebe que tiene instalada una versión compatible.
Para consultar el historial de versiones de Tablestore SDK for PHP, consulte Version history of Tablestore SDK for PHP .
Requisitos previos
Inicialice el cliente. Para obtener más información, consulte Initialize a Tablestore client.
-
Si desea crear una tabla de mapeo para un índice de búsqueda, primero debe create the search index.
Parámetros
SQLQueryRequest contiene el parámetro a continuación.
|
Nombre |
Tipo |
Descripción |
|
query (obligatorio) |
String |
La instrucción |
Ejemplos
Este tema describe cómo crear una tabla de mapeo para una tabla. Si necesita crear una tabla de mapeo para un índice de búsqueda, reemplace la instrucción SQL del código de ejemplo por la instrucción correspondiente a ese tipo de índice.
A continuación se muestra cómo usar la instrucción CREATE TABLE para crear una tabla de mapeo de la tabla 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);
Preguntas frecuentes
¿Qué debo hacer si al crear una tabla de mapeo se devuelve el error "Table 'instancename.tablename' doesn't exist ?"
-
Causa posible
La tabla para la que intenta crear la tabla de mapeo no existe.
-
Solución
La instrucción CREATE TABLE de SQL solo permite crear una tabla de mapeo para una tabla o un índice de búsqueda que ya exista. Compruebe que la tabla o el índice de búsqueda de destino esté creado antes de continuar.
¿Qué debo hacer si al crear una tabla de mapeo se devuelve el error "Table 'instancename.tablename' already exist?"**
-
Causa posible
Ya se creó una tabla de mapeo para la tabla indicada. Esto ocurre en dos situaciones:
Un usuario creó manualmente la tabla de mapeo.
Tablestore generó automáticamente la tabla de mapeo. Si consulta datos de una tabla directamente con instrucciones SQL (como DESCRIBE o SELECT) sin haber creado antes su tabla de mapeo, Tablestore la genera de forma automática. Esta tabla de mapeo automática solo incluye las columnas de clave principal y las columnas predefinidas de la tabla de datos, por lo que no es posible actualizar sus columnas de atributos.
-
Solución
Ejecute la instrucción
DESCRIBEpara consultar el esquema de la tabla de mapeo. Si el esquema no cumple con sus requisitos de negocio, puede update the attribute columns of the mapping table. Cuando Tablestore crea la tabla de mapeo automáticamente, no es posible actualizar las columnas de atributos. En ese caso, elimine la tabla de mapeo y cree una nueva, siempre que haya comprobado que esta acción no afecta su operación.
Para conocer los errores comunes de la función de consultas SQL y sus soluciones, consulte Troubleshoot common SQL query errors.
Referencias
Una vez creada la tabla de mapeo, puede actualizar sus columnas de atributos, consultar su información, obtener los nombres de las tablas de mapeo, revisar su información de índices y eliminarla. Para obtener más detalles, consulte Update attribute columns of a mapping table, Query information about a table, List the names of mapping tables, Query the index information about a table y Delete a mapping table.
Utilice la instrucción SELECT para consultar y analizar los datos de una tabla de mapeo. Para obtener más información, consulte Query data.