Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Ausführen einer Zusammenführungsoperation durch Ersetzung vorhandener Zeilen
Wenn Sie die im Verfahren beschriebene Zusammenführungsoperation ausführen, führen Sie alle Schritte abgesehen vom Erstellen und Entfernen der temporären Staging-Tabelle in einer einzigen Transaktion aus. Die Transaktion wird rückgängig gemacht, falls ein Schritt fehlschlägt. Die Verwendung einer einzelnen Transaktion reduziert auch die Anzahl der Commit-Vorgänge, was Zeit und Ressourcen spart.
So führen Sie eine Zusammenführungsoperation durch Ersetzung vorhandener Zeilen aus
-
Erstellen Sie eine Staging-Tabelle und füllen Sie sie mit Daten aus, die zusammengeführt werden sollen, wie im folgenden Pseudocode gezeigt.
CREATE temp table stage (like target); INSERT INTO stage SELECT * FROM source WHERE source.filter = 'filter_expression';
-
Wird verwendetMERGE, um eine innere Verknüpfung mit der Stagingtabelle durchzuführen, um die Zeilen aus der Zieltabelle zu aktualisieren, die mit der Stagingtabelle übereinstimmen, und fügt dann alle verbleibenden Zeilen in die Zieltabelle ein, die nicht mit der Stagingtabelle übereinstimmen.
Es wird empfohlen, die Aktualisierungs- und Einfügevorgänge mit einem einzigen Befehl auszuführen. 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});
-
Entfernen Sie die Staging-Tabelle.
DROP TABLE stage;