Announcement

Collapse
No announcement yet.

UPDATE über mehrere Tabellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • UPDATE über mehrere Tabellen

    Hallo,

    ich führe einen nicht besonders performanten UPDATE über mehrere Tabellen aus, mit ein paar Konditions natürlich, also

    UPDATE tab1,tab2,tab3 SET tab1.val = 'xyz' WHERE ...

    Wie man sieht, werden allerdings nur die Spalten einer Tabelle aktualisiert.
    Ich muss aber tab2 und tab3 for dem SET angeben um später in den Conditions auf beide Tabelle referenzieren zu können.

    1.) Gibt es eine andere Möglichkeit dazu? Ich habe das Gefühl, dass bei drei Tabellen kubische Komplexität O(n)=n^3 vorliegt.

    2.) Bringt mir hier das Einführen eines Indizes über tab2 und tab3 etwas, oder ist dies eher hinderlich?

    3.) Ich muss zwei DBs unterstützen, weil wir uns noch nicht für MS SQL Server oder MySQL entschieden haben. Gibt es hier diesbezüglich Unterschiede?

    Vielen Dank für Eure Hilfe.

    mssqler

  • #2
    Hallo mssqler,

    der UPDATE Befehl akzeptiert sowieso nur einen Tabellenname, so geht es schon mal nicht.
    In der FROM Klausel kann man dann weitere Tabellen angeben und wie es sich gehört, definiert man dann auch die entsprechenden JOIN Prädikate; sonst macht diese "Referenz" keinen Sinn.
    Soviel zu 1), wenn man es richtig macht, gibt es kein Kreuzprodukt, sondern man schränkt die zu aktualisierende Daten entsprechend auf ein SubSet ein.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment

    Working...
    X