Ich möchte INSERT
die IDs aus zwei Tabellen in eine Verknüpfungstabelle, um eine viele zu viele Beziehung aufzulösen.Schnellste Weg zum Einfügen in Verknüpfungstabelle
Was ist der schnellste und effizienteste Weg zu INSERT
ohne einen komplexen JOIN
aus zwei Tabellen zu machen? Ich brauche es nur einzufügen, wenn es auch keine Duplikate erzeugt.
Ich habe gelesen, dass MERGE
kann effektiv sein, aber sieht aus wie Sie nur 1 Quellentabelle verwenden können.
Ich habe zwei Tabellen durch eine Verknüpfungstabelle verbunden. Das Schema ist unten:
CREATE TABLE table1
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(40))
CREATE TABLE table2
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(100),
field2 INT,
field3 VARCHAR(40))
CREATE TABLE linkTable
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 INT REFERENCES table1(id),
field2 INT REFERENCES table2(id))
ich einen Index für table1.field1 und table2.field1 haben.
Wenn Sie einen eindeutigen Index für die Link-Tabelle platzieren, wird es die Duplikate mit einer Ausnahme verweigern, die Sie fangen und entsorgen können. –
Hallo @ Bryan. Ich habe diesen Ansatz ausprobiert, aber beim Ausführen von Batch-Einfügungen vergisst er, wenn eine Ausnahme ausgelöst wird, den Rest der einzufügenden Datensätze. –