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.

Inhalt der Datenbank vor:

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage