Copiar conjuntos de dados com relação n: m

Eu gostaria de usar a instrução SQL única

<code>insert into T (...) select ... from T where ...
</code>

para copiar muitos conjuntos de dados. Meu problema é que existem relações N: M da tabelaT para outras tabelas e estas também precisam ser copiadas. Como posso fazer isso, se não sei qual conjunto de dados original pertence a qual conjunto de dados copiado? Deixe-me demonstrar pelo exemplo.

Conteúdo do banco de dados antes:

MesaT:

<code>ID  | COL1 | COL2    
-----------------
1   | A    | B
2   | C    | D
</code>

N: Tabela M faz referência à tabela U da tabela T (a tabela U não é mostrada):

<code>T   | U              
---------
1   | 100
1   | 101
2   | 100
2   | 102
</code>

Minha operação de cópia em que [???] é a parte que não conheço:

<code>insert into T (COL1, COL2) select COL1, COL2 from T
insert into NM (T, U) select [???]
</code>
Conteúdo do banco de dados após:

MesaT:

<code>ID  | COL1 | COL2
-----------------
1   | A    | B
2   | C    | D
3   | A    | B
4   | C    | D
</code>

N: M-table:

<code>T   | U
---------
1   | 100
1   | 101
2   | 100
2   | 102
3   | 100
3   | 101
4   | 100
4   | 102
</code>

Aviso prévio:

Eu tenho milhares de conjuntos de dados (não apenas dois)Eu quero usar 'insert ... select' para obter um melhor desempenho

questionAnswers(2)

yourAnswerToTheQuestion