[SQL] Wie 2 Spalten addieren und in einer 3 Spalte eintragen [was: Frage zu SQL]



  • Beispiel:

    Tabelle:

    spalte_1  spalte_2  spalte_3
    1         1         NULL
    2         2         NULL
    

    Ich will in "spalte_3" die Summe von "spalte_1" und "spalte_2" schreiben:

    spalte_1  spalte_2  spalte_3
    1         1         2
    2         2         4
    

    Geht das mit

    UPDATE tabelle SET spalte_3 = spalte_1 + spalte_2
    

    oder muss ich das per Cursor machen, um die Zeilen einzeln anzusprechen?

    Gruß

    <edit>
    bitte benutzt doch mal vernünftige Topics 😡
    wmfrs <-- lesen,lernen!
    </edit>



  • Das geht mit deinem Update, da brauchst du keinen Cursor für.

    Ich würde aber einen View dafür als bessere Lösung ansehen. Oder wenn du das unbedingt in der Tabelle stehen haben musst einen Trigger der das direkt beim einfügen/aktualisieren erledigt.



  • frenki schrieb:

    Das geht mit deinem Update, da brauchst du keinen Cursor für.

    Ich würde aber einen View dafür als bessere Lösung ansehen. Oder wenn du das unbedingt in der Tabelle stehen haben musst einen Trigger der das direkt beim einfügen/aktualisieren erledigt.

    Oki, Danke!



  • Frenki hat eigentlich alles gesagt, was es dazu zu sagen gibt, ich moechts nur nochmal betonen:

    Es ist NICHT SINNVOLL[!!!], die gleichen Daten 2x in einer Datenbank zu speichern, das ist sinnlos da ueberfluessig (in der Fachsprache gibts ein eignes Wort fuer: "redundant"), weil man sich die Daten eh aus den anderen Daten selbst zusammenrechen kann.

    z. B. koennte es dir passieren, dass du irgendwie, irgendwo, irgendwann einen Wert in Spalte 1 aenderst, und vergisst, Spalte 3 auch upzudaten (sag jetzt nicht "das passiert mir eh nie", irren ist menschlich).
    Und wenn du glaubst, das Ganze bringt einen Speed-Vorteil: normalerweise ist die Datenbank der Flaschenhals, nicht das Programm, das die Daten weiterverarbeitet. Ein PHP-Script muesste z. B. wahrscheinlich laenger darauf warten, bis es die zusaetzliche Spalte aus der Datenbank geladen hat, als es brauchen wuerde, sie selbst zusammenzurechnen 🙂
    (ok, haengt jetzt von mehreren Faktoren ab, aber in der Regel macht man sowas nicht, Redundanz in Datenbanken sollte immer vermieden werden!)



  • IMHO kann man auch sagen das man eine DB normalisiert.


Anmelden zum Antworten