Luise: echtes verbinden mehrere Tabellen

Ich habe 12 Tabellen, alle sind gleich aufgebaut. Diese würde ich gerne in eine einzige zusammenführen. Aber ich finde nichts darüber, nur Abfragen bzüglich mehrere Tabellen.

Kann mir da jemand weiterhelfen?

Luise

  1. Ich habe 12 Tabellen, alle sind gleich aufgebaut. Diese würde ich gerne in eine einzige zusammenführen.

    CREATE TABLE tabNeu LIKE tab1;
    INSERT INTO tabNeu (
    SELECT tab1.spalte1, tab1.spalte2 FROM tab1  
    UNION  
    SELECT tab2.spalte1, tab2.spalte2 FROM tab2
    );
    
    1. Da die Tabellen per Definitionem alle gleich sein sollen, würde hier auch SELECT * taugen, um Schreibarbeit zu sparen (aber ich würde vorher nochmal genau gucken ob sie wirklich alle gleich sind :) ).

      Es ist auch zu berücksichtigen, wie groß die Einzeltables sind. Ein UNION über alle 12, der per INSERT in die neue Tabelle gepumpt wird, wird in einer einzigen Transaktion durchgeführt. Es ist möglich, dass das den Log der Datenbank sprengt. Man kann es auch teilen:

      CREATE TABLE tabNeu LIKE tab1;
      INSERT INTO tabNeu SELECT * FROM tab1;
      INSERT INTO tabNeu SELECT * FROM tab2;
      INSERT INTO tabNeu SELECT * FROM tab3;
      ...
      

      Rolf