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.
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