Actualización e inserción de datos nuevos
Puede agregar eficazmente nuevos datos a una tabla existente mediante el comando MERGE. Realice una operación de fusión mediante la creación de una tabla provisional y, a continuación, utilice uno de los métodos descritos en esta sección para actualizar la tabla de destino a partir de la tabla provisional. Para obtener más información sobre el comando MERGE, consulte MERGE.
En los Ejemplos de fusión se usa un conjunto de datos de muestra para Amazon Redshift, denominado conjunto de datos TICKIT. Como requisito previo, puede configurar las tablas y los datos de TICKIT según las instrucciones disponibles en Introducción a tareas comunes de bases de datos. Encontrará información más detallada sobre el conjunto de datos de muestra en Base de datos de muestra.
Método de fusión 1: Reemplazar filas existentes
Si sobrescribe todas las columnas de la tabla de destino, el método más rápido para realizar una combinación es sustituir las filas existentes. Esto escanea la tabla de destino solo una vez, mediante una combinación interna para eliminar las filas que se actualizarán. Una vez eliminadas las filas, se reemplazan por filas nuevas mediante una operación de inserción única desde la tabla provisional.
Aplique este método si se satisfacen todas las siguientes condiciones:
-
La tabla destino y la provisional tienen las mismas columnas.
-
Desea reemplazar todos los datos de las columnas de la tabla destino por los de las columnas de la tabla provisional.
-
Usará todas las filas de la tabla provisional en la fusión.
Si alguno de estos criterios no se aplica, utilice el Método de fusión 2: especificación de una lista de columnas sin utilizar MERGE, descrito en la siguiente sección.
Si no usará todas las filas de la tabla provisional, filtre las instrucciones DELETE e INSERT al usar una cláusula WHERE para excluir las filas que no cambiarán. No obstante, si la mayoría de las filas de la tabla provisional no participarán en la fusión, recomendamos ejecutar los comandos UPDATE e INSERT en distintos pasos, según se describe posteriormente en esta sección.
Método de fusión 2: especificación de una lista de columnas sin utilizar MERGE
Aplique este método para actualizar columnas específicas de la tabla destino, en lugar de sobrescribir filas enteras. Este método tarda más que el anterior porque requiere un paso de actualización adicional y no utiliza el comando MERGE. Aplique este método si se satisface alguna de las siguientes condiciones:
-
No todas las columnas de la tabla destino se actualizarán.
-
La mayoría de las filas de la tabla provisional no se usarán en las actualizaciones.