Hallo,
ich habe eine Tabelle B, in der Unterpositionen zu einer anderen A eingetragen werden.
Die Unterpositionen werden über eine eigene Positionsnummer sortiert.
ID_A | ergeben zusammen den Sortierschlüssel
POS |
ID_A POS
-------- --------
1 1
1 2
1 3
3 2
3 5
3 6
So ungefähr könnte die Tabelle nach einigen Bewegungen aussehen.
Nun will ich möglichst mit einem einzigen SQL-Statement festestellen, ob ich vor der ID_A=1, POS=2 eine neue Position einfügen kann. Hierzu müsste ja vorher Platzgeschaffen werden, also ein Update ( "POS=POS+1" )auf die POS >= 2, die zu ID_A gehören.
Das soll aber nur dann passieren, wenn POS=2 überhaupt vorhanden ist, denn sonst könnte sie ja sowieso belegt werden.
Gibt es nun eine Möglichkeit, das in einem SQL-Statement zu verpacken?
Zweite Frage
------------
Muss ich die Tabelle für das Update locken oder lässt MySQL während meiner Aktion sowieso niemand ran? Da ja hinterher auf jeden Fall noch ein Insert auf die gefundene/geschaffene Lücke kommt, wäre locken wohl ratsamer, oder?
Liebe Grüße aus http://www.braunschweig.de
Tom
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.