Datensatz zwischen Bestehenden einfügen

Registrierer

Erfahrenes Mitglied
(Besserer Titel fiel mir nicht ein)
Ich habe eine Rechnungstabelle und eine Rechnungsdetailtabelle, in der die einzelnen Positionen gespeichert werden.
Es gibt dort ein ID Feld (auto_increment) und ein LFDNR Feld (INT) welches automatisch mit fortlaufenden Nummern beginnend mit 1 gefüllt wird und als Sortierkriterium herhalten muß.
Beispielsweise so:

ID LFDNR
34 1
35 2
36 3
37 4

Nun möchte ich beispielsweise an Pos. 2 eine Position einfügen. Meine Idee wäre die Positionen ab LFDNR 2 in eine temporäre Tabelle zu verschieben, die neue Pos. einzufügen und den Rest wieder dranzuhängen.
Das erscheint mir ziemlich aufwändig. Gibt es eine bessere Möglichkeit?

PS: Diese Frag habe ich gestern auch auf php.de gestellt, doch leider konnte mir noch niemand antworten und denke und hoffe nach 20 Stunden nicht gegen die Forenregeln zu verstoßen.
(Hab die dortigen Forenmitglieder von meinem Artikel hier ebenfalls informiert um doppelte Problemlösungsversuche zu vermeiden)
 
Hi,

öffne zunächst die Lücke (also alle Positionen der Bestellung >=2 eine Position höher) und füge die neue Position dann auf Position 2 ein.
SQL:
UPDATE Rechnungsdetailtabelle
SET LFDNR = LFDNR+1
WHERE LFDNR>=2
AND bestell_id=2000;


INSERT INTO Rechnungsdetailtabelle (bestell_id, LFDNR, ...)
VALUES (2000, 2, ...);

Grüße BN
 
Zuletzt bearbeitet von einem Moderator:
Zurück