Datensätze mit n: m-Beziehung kopieren
Ich möchte die einzelne SQL-Anweisung verwenden
<code>insert into T (...) select ... from T where ... </code>
viele Datensätze zu kopieren. Mein Problem ist, dass es N: M-Beziehungen von der Tabelle gibtT
in andere Tabellen und diese müssen auch kopiert werden. Wie kann ich das tun, wenn ich nicht weiß, welcher Originaldatensatz zu welchem kopierten Datensatz gehört? Lassen Sie mich anhand eines Beispiels demonstrieren.
TabelleT
:
<code>ID | COL1 | COL2 ----------------- 1 | A | B 2 | C | D </code>
N: M-Tabelle referenziert Tabelle U von Tabelle T (Tabelle U ist nicht gezeigt):
<code>T | U --------- 1 | 100 1 | 101 2 | 100 2 | 102 </code>
Meine Kopieroperation, bei der [???] der Teil ist, den ich nicht kenne:
<code>insert into T (COL1, COL2) select COL1, COL2 from T insert into NM (T, U) select [???] </code>Inhalt der Datenbank nach:
TabelleT
:
<code>ID | COL1 | COL2 ----------------- 1 | A | B 2 | C | D 3 | A | B 4 | C | D </code>
N: M-Tisch:
<code>T | U --------- 1 | 100 1 | 101 2 | 100 2 | 102 3 | 100 3 | 101 4 | 100 4 | 102 </code>
Beachten:
Ich habe Tausende von Datensätzen (nicht nur zwei)Ich möchte "Einfügen ... Auswählen" verwenden, um eine bessere Leistung zu erzielen