Este tema describe la sintaxis para actualizar datos en una tabla espacio-temporal.
Sintaxis
upsert_statement ::= UPSERT [hint_clause] INTO table_name
'('columns| _l_ts_')'
VALUES '(' values ')'
[ ON DUPLICATE KEY update_column = update_value |IGNORE ]?
columns ::= column_name, columns
values ::= term, values,'(' values ')'
| function_name '(' term ( ',' term )* ')'
update_column ::= column_name
update_value ::= term
hint_clause::=/*+hint_items*/
hint_items::=hint_item(','hint_item)*
hint_item::=identifier('('hint_option(','hint_option)*')')
hint_option::=expression
La instrucción UPSERT permite insertar varias filas en un lote. Especifique las columnas en las que se insertarán los valores. Use la palabra clave Values para definir la cantidad de filas que desea insertar.
La operación UPSERT ON DUPLICATE KEY es compatible y similar a la operación CHECK AND PUT. Asegúrese de que los valores especificados puedan identificar una fila. Si después de ON DUPLICATE KEY especifica la columna que desea actualizar junto con el nuevo valor, y dicha columna ya existe en la tabla, se generará una excepción. Esto ocurre porque ON DUPLICATE KEY no puede actualizar valores al comprobar si existe la columna especificada. ON DUPLICATE KEY IGNORE se usa para omitir la comprobación de columnas duplicadas e insertar las filas directamente.
Use Java Database Connectivity (JDBC) estándar para enviar instrucciones SQL regulares o instrucciones preparadas a Lindorm. El envío de instrucciones preparadas mediante JDBC estándar para ejecutar operaciones de inserción por lotes solo es compatible con Lindorm versión 2.2.16 y posteriores.
Ejemplos
-
Para escribir datos en una tabla espacio-temporal, use uno de los dos métodos a continuación:
-
Método 1
UPSERT INTO dt(id, g, t) VALUES(0,ST_MakePoint(0.0,1.0),1000); -
Método 2
UPSERT INTO dt(id, g, t) VALUES(0,ST_GeomFromText('POINT (0.0 1.0)'),1000);
-
-
Ejecute la siguiente instrucción para escribir varios registros en una tabla espacio-temporal simultáneamente:
UPSERT INTO dt (id, g, t) VALUES(1,ST_MakePoint(1.23,2.34),2000),(2,ST_MakePoint(3.45,5.67),3000),(3,ST_MakePoint(4.56,5.67),4000);
Para obtener más información sobre las funciones espacio-temporales disponibles para la escritura de datos, consulte Descripción general.
Para ver más ejemplos sobre el uso de JDBC en la escritura de datos, consulte Getting started.