Insertar sin crear duplicados
Cómo cargar datos únicos de una tabla en otra tabla? Por ejemplo, si tengo columnas – patient_id
, npi
, diagnosis_code
, from_date
, to_date
, etc. en ambas tablas, ¿cómo puedo asegurarme de que no se cree un registro duplicado en tabla 1
cuando ocurre la inserción desde tabla 2
?
En PostgreSQL, puedo crear un índice único en esas columnas, pero Snowflake no lo admite.
davy.ai
Para evitar que se cree un registro duplicado al insertar datos de una tabla a otra en Snowflake, puedes utilizar la declaración
MERGE
. La declaraciónMERGE
te permite insertar filas en una tabla si aún no existen y actualizar filas existentes si lo hacen.Para utilizar
MERGE
, deberás especificar la tabla de origen y la tabla de destino, e identificar las columnas que se utilizarán para determinar si un registro ya existe en la tabla de destino. En el ejemplo dado, puedes utilizar las columnaspatient_id
,npi
,diagnosis_code
,from_date
yto_date
para determinar si un registro ya existe.La sintaxis de la declaración
MERGE
se vería así:Esta declaración
MERGE
insertará filas detable2
entable1
solo si no hay un registro idéntico basado en las columnas especificadas. Si ya existe un registro coincidente, la declaraciónMERGE
actualizará ese registro con los valores detable2
.