Declaración de fusión de SQL combina INSERTAR , BORRAR , y ACTUALIZAR declaraciones en una sola consulta.
cambiar el nombre del directorio de Linux
Declaración MERGE en SQL
La declaración MERGE en SQL se utiliza para realizar operaciones de inserción, actualización y eliminación en un tabla de destino basado en los resultados de JOIN con un tabla fuente . Esto permite a los usuarios sincronizar dos tablas realizando operaciones en una tabla en función de los resultados de la segunda tabla.
La declaración MERGE compara datos entre una tabla de origen y una tabla de destino en función de campos clave especificados. Realiza acciones apropiadas como insertar nuevos registros, actualizar los existentes y eliminar o marcar registros que ya no están presentes en la fuente.
Esta declaración proporciona una forma flexible de gestionar los cambios de datos y se utiliza habitualmente en escenarios como el mantenimiento Dimensiones que cambian lentamente ( SCD ) en FUSIONAR EN target_table
USANDO fuente_table
EN merge_condition
CUANDO SE EMPAREJÓ ENTONCES
ACTUALIZAR CONJUNTO columna1 = valor1 [, columna2 = valor2…]
CUANDO NO EMPAREJÓ ENTONCES
INSERTAR (columna1 [, columna2…])
VALORES (valor1 [, valor2…]);
Ejemplo de declaración SQL MERGE
Supongamos que hay dos tablas:
- LISTA DE PRODUCTOS que es la tabla que contiene el detalle actual de los productos disponibles con los campos P_ID, P_NAME y P_PRICE correspondientes al ID, nombre y precio de cada producto.
- LISTA ACTUALIZADA que es la tabla que contiene los nuevos detalles sobre los productos disponibles con los campos P_ID, P_NAME y P_PRICE correspondientes al ID, nombre y precio de cada producto.

La tarea es actualizar los detalles de los productos en PRODUCT_LIST según UPDATED_LIST.
Solución
Ahora, para explicar mejor este ejemplo, dividámoslo en pasos.
¿Qué es correo electrónico?
Paso 1: Reconocer la tabla TARGET y SOURCE
Entonces, en este ejemplo, dado que se solicita actualizar los productos en PRODUCT_LIST según UPDATED_LIST, PRODUCT_LIST actuará como OBJETIVO y UPDATED_LIST actuará como la tabla FUENTE.

Paso 2: Reconocer las operaciones a realizar.
Ahora bien, como se puede observar existen tres discrepancias entre la tabla TARGET y la SOURCE, que son:
1. El costo del CAFÉ en TARGET es 15.00 mientras que en SOURCE es 25.00
PRODUCT_LIST 102 COFFEE 15.00 UPDATED_LIST 102 COFFEE 25.00>
2. No hay ningún producto BISCUIT en SOURCE pero sí en TARGET
PRODUCT_LIST 103 BISCUIT 20.00>
3. No hay ningún producto CHIPS en TARGET pero sí en SOURCE
UPDATED_LIST 104 CHIPS 22.00>
Por tanto, es necesario realizar tres operaciones en el TARGET de acuerdo con las discrepancias anteriores. Ellos son:
1. ACTUALIZAR operación
102 COFFEE 25.00>
2. BORRAR operación
np significa
103 BISCUIT 20.00>
3. INSERTAR operación
104 CHIPS 22.00>
Paso 3: escriba la consulta SQL
El consulta SQL realizar las operaciones antes mencionadas con la ayuda del Declaración de fusión es:
SQL /* Selecting the Target and the Source */ MERGE PRODUCT_LIST AS TARGET USING UPDATE_LIST AS SOURCE /* 1. Performing the UPDATE operation */ /* If the P_ID is same, check for change in P_NAME or P_PRICE */ ON (TARGET.P_ID = SOURCE.P_ID) WHEN MATCHED AND TARGET.P_NAME SOURCE.P_NAME OR TARGET.P_PRICE SOURCE.P_PRICE /* Update the records in TARGET */ THEN UPDATE SET TARGET.P_NAME = SOURCE.P_NAME, TARGET.P_PRICE = SOURCE.P_PRICE /* 2. Performing the INSERT operation */ /* When no records are matched with TARGET table Then insert the records in the target table */ WHEN NOT MATCHED BY TARGET THEN INSERT (P_ID, P_NAME, P_PRICE) VALUES (SOURCE.P_ID, SOURCE.P_NAME, SOURCE.P_PRICE) /* 3. Performing the DELETE operation */ /* When no records are matched with SOURCE table Then delete the records from the target table */ WHEN NOT MATCHED BY SOURCE THEN DELETE /* END OF MERGE */>
Producción:
PRODUCT_LIST P_ID P_NAME P_PRICE 101 TEA 10.00 102 COFFEE 25.00 104 CHIPS 22.00>
Entonces, de esta manera, podemos realizar estas tres declaraciones principales en SQL juntas con la ayuda de la declaración MERGE.
Nota: Se puede utilizar cualquier nombre que no sea destino y origen en la sintaxis MERGE. Se utilizan sólo para darle una mejor explicación.
Puntos importantes sobre la declaración SQL MERGE
- La declaración SQL MERGE combina INSERTAR , ACTUALIZAR , y BORRAR operaciones en una sola declaración, lo que permite una sincronización eficiente de datos entre las tablas de origen y de destino.
- Proporciona flexibilidad para personalizar scripts SQL complejos al manejar múltiples operaciones de manipulación de datos en una sola transacción.
- La declaración SQL MERGE se usa comúnmente en escenarios como el mantenimiento de dimensiones que cambian lentamente (SCD) en almacenes de datos.
- La indexación adecuada, las condiciones de unión optimizadas y el filtrado de la tabla de origen para los registros necesarios pueden optimizar el rendimiento de la declaración MERGE.