El Tablestore SDK for Python crea una tabla de asignación para una tabla de datos o un índice de búsqueda existente con el fin de habilitar el acceso SQL a los datos.
Requisitos previos
Instale Tablestore SDK for Python e inicialice un cliente.
La consulta SQL requiere la versión 5.4.2 o posterior. Se recomienda utilizar la versión más reciente.
Descripción
Llame al método exe_sql_query para ejecutar una instrucción CREATE TABLE y crear una tabla de asignación para una tabla de datos o un índice de búsqueda existente.
def exe_sql_query(self, query)
Para una tabla de datos, la tabla de asignación debe tener el mismo nombre que dicha tabla. Los nombres de los campos no distinguen entre mayúsculas y minúsculas, y los tipos de campo deben corresponder a los tipos de campo de la tabla de datos. Para un índice de búsqueda, puede personalizar el nombre de la tabla de asignación y usar ENGINE y ENGINE_ATTRIBUTE para especificar la tabla de datos y el índice de búsqueda.
Para consultar la sintaxis, los tipos de campo y los parámetros de la instrucción CREATE TABLE, consulte DDL operations.
A continuación se muestra un ejemplo que crea una tabla de asignación para la tabla de datos example_table.
query = """
CREATE TABLE example_table (
pk VARCHAR(1024), long_value BIGINT, double_value DOUBLE,
string_value MEDIUMTEXT, bool_value BOOL, PRIMARY KEY(pk)
)
"""
client.exe_sql_query(query)
Parámetros
El método exe_sql_query contiene el siguiente parámetro.
|
Nombre |
Tipo |
Descripción |
|
query (obligatorio) |
String |
La instrucción |
Ejemplos de escenarios
Cree una tabla de asignación para un índice de búsqueda
Establezca ENGINE en searchindex y especifique la tabla de datos y el índice de búsqueda en ENGINE_ATTRIBUTE. A continuación se muestra un ejemplo que crea la tabla de asignación example_search_table para el índice de búsqueda example_index de la tabla de datos example_table.
query = """
CREATE TABLE example_search_table (
pk MEDIUMTEXT, long_value BIGINT, string_value MEDIUMTEXT
) ENGINE='searchindex'
ENGINE_ATTRIBUTE='{"index_name":"example_index","table_name":"example_table"}'
"""
client.exe_sql_query(query)
Preguntas frecuentes
Se devuelve el error Table 'instance.table' doesn't exist
Causa: La tabla de datos o el índice de búsqueda especificado no existe. La instrucción CREATE TABLE solo crea la tabla de asignación.
Solución: Compruebe los nombres, asegúrese de que la tabla de datos o el índice de búsqueda exista y vuelva a ejecutar la instrucción.
Se devuelve el error Table 'instance.table' already exists
Causa: La tabla de asignación ya existe. Una instrucción DESCRIBE o SELECT también puede crear automáticamente una tabla de asignación que contenga solo columnas de clave principal y columnas predefinidas.
Solución: Para evitar errores por creación duplicada, utilice IF NOT EXISTS. Si necesita modificar una tabla de asignación creada automáticamente, evalúe el impacto, elimine la tabla de asignación y vuelva a crearla.