Realización de una operación de fusión al reemplazar filas existentes - Amazon Redshift

Realización de una operación de fusión al reemplazar filas existentes

Cuando ejecute la operación de fusión detallada en el procedimiento, ponga todos los pasos, excepto la creación y eliminación de la tabla provisional, en una transacción única. La transacción se anula si se produce un error en algún paso. El uso de una transacción única también reduce la cantidad de confirmaciones, lo cual ahorra tiempo y recursos.

Pasos para realizar una operación de fusión al reemplazar filas existentes
  1. Cree una tabla provisional y, luego, complétela con los datos que se fusionarán, como se muestra en el siguiente pseudocódigo.

    CREATE temp table stage (like target); INSERT INTO stage SELECT * FROM source WHERE source.filter = 'filter_expression';
  2. Utilice MERGE para realizar una unión interna con la tabla provisional para actualizar las filas de la tabla de destino que coincidan con la tabla provisional y, a continuación, inserte en la tabla de destino todas las filas restantes que no coincidan con la tabla provisional.

    Le recomendamos que ejecute las operaciones de actualización e inserción en un único comando MERGE.

    MERGE INTO target USING stage [optional alias] on (target.primary_key = stage.primary_key) WHEN MATCHED THEN UPDATE SET col_name1 = stage.col_name1 , col_name2= stage.col_name2, col_name3 = {expr} WHEN NOT MATCHED THEN INSERT (col_name1 , col_name2, col_name3) VALUES (stage.col_name1, stage.col_name2, {expr});
  3. Elimine la tabla provisional.

    DROP TABLE stage;