Copie los conjuntos de datos con n: m-relación
Me gustaría usar la única declaración SQL
<code>insert into T (...) select ... from T where ... </code>
Para copiar una gran cantidad de conjuntos de datos. Mi problema es que hay relaciones N: M de la tablaT
A otras tablas y estas tienen que ser copiadas también. ¿Cómo puedo hacer esto, si no sé qué conjunto de datos original pertenece a qué conjunto de datos copiado? Déjame demostrarte con el ejemplo.
MesaT
:
<code>ID | COL1 | COL2 ----------------- 1 | A | B 2 | C | D </code>
N: la tabla M hace referencia a la tabla U de la tabla T (la tabla U no se muestra):
<code>T | U --------- 1 | 100 1 | 101 2 | 100 2 | 102 </code>
Mi operación de copia donde [???] es la parte que no sé:
<code>insert into T (COL1, COL2) select COL1, COL2 from T insert into NM (T, U) select [???] </code>Contenido de la base de datos después de:
MesaT
:
<code>ID | COL1 | COL2 ----------------- 1 | A | B 2 | C | D 3 | A | B 4 | C | D </code>
N: tabla M:
<code>T | U --------- 1 | 100 1 | 101 2 | 100 2 | 102 3 | 100 3 | 101 4 | 100 4 | 102 </code>
Darse cuenta:
Tengo miles de conjuntos de datos (no solo dos)Quiero usar 'insertar ... seleccionar' para obtener un mejor rendimiento