Dienstag, 11. Mai 2010

SQL - Spezial insert - select - update - mal anders

Auch wenn Hibernate und Java super Dienste leisten können ist SQL bisweilen praktikabler und performanter.


Die Ergebnisse eines selects verwenden um eine Datenmanipulation vorzunehmen.


insert into GRUND_TREE_OE_TREE (GRUND_TREE_ID,OE_TREE_ID,AKTIV) (
select GRUND_TREE_ID,90000002,'1' from GRUND_TREE_OE_TREE where oe_tree_id=50026709
);



Der update-Befehl scheint implizit auch ein select zu machen - sonst könnte ich mir das ergenis dieses updates nicht erklären. Um die gleiche Manipulation der Daten mit Java-Mitteln zu machen, hätte ich bedeutend mehr Ernergie aufwenden müssen.



update ANLIEGEN set sub_oe_tree_id = oe_tree_id where sub_oe_tree_id is null

1 Kommentar:

  1. Man kann im update statement ebenso ein select angeben. Wichtig ist dabei, dass der select pro Datensatz, der vom update betroffen ist, nur einen Wert zurückgibt. Z.B. so


    update person update_person set abteilungsname = (
    select abt.ame from abteilung abt
    where abt.id = update_person.abteilung_id
    )


    Auf diese Weise kann zum Beispiel eine redundante Spalte mit Hilfe eines Joins gefüllt werden, um einen Suchzugriff zu vereinfachen.

    AntwortenLöschen