Índice

Actuar sobre los datos a partir de otra tabla

1. La cláusula MERGE MERGE

Esta función permite insertar, modificar o eliminar registros en una tabla a partir de datos de otra tabla o vista.

Sintaxis

MERGE INTO <nombre tabla1>  
  USING <nombre tabla2>  
  ON <condiciones>  
  WHEN MATCHED THEN  
    UPDATE SET <tabla1.columna1> = valor1, <tabla1.columna2> =  
valor2, ... ...  
    DELETE WHERE <condiciones2>  
  WHEN NOT MATCHED THEN  
    INSERT <columna1>, <columna3>, ... ...   
    VALUES (valor1, valor3, ... ...)
  • MERGE INTO: tabla a modificar.

  • USING: los datos fuente.

  • ON: condiciones.

  • WHEN MATCHED THEN: las modificaciones o eliminaciones realizadas cuando la condición o las condiciones se verifican. MATCHED

  • WHEN NOT MATCHED THEN: los registros añadidos cuando la condición no se verifica.

Ejemplo

Deseamos aumentar el precio un 15 % en la tabla Tarifas cuando la columna Comentario de la habitación contiene un dato.

A continuación se muestra la consulta que selecciona las tarifas que se han de aumentar un 15 %. El join se realiza sobre las dos claves extranjeras de la tabla Tarifas para que no haya registros duplicados. Se muestra el idTarifa para estar seguros. La restricción permite seleccionar solo los comentarios cuyo valor es NULL o contiene un espacio.

SELECT idTarifa, Precio, ...