Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#19

AW: Wie fortlaufende Nr. in DB-Taballe erzeugen? Generator nicht möglich?

  Alt 8. Nov 2014, 09:23
...Die einzige praktikable Lösung die ich kenne... ist eine Hilfstabelle mit den entsprechenden Nummern(-Kreisen) wo sich der Server vor dem "Post" automatisch die nächste Nummer holt und die zuletzt vergebene Nummer wieder zurückschreibt.
Ist doch fein.
Code:
UPDATE NummernKreise
   SET Nummer = Nummer + 1 
 WHERE NummernKreisPK = :MyNummernKreis

RETURNING Nummer INTO :NeueNummer
Geht das so?
Und wenn man diese Zeile entsprechend innerhalb der Transaktion lockt, dann reißt es bei einem Rollback auch keine Löcher in den Käse die Folge.

Aufpassen muss man allerdings, wenn man (beim Buchen nicht ungewöhnlich) innerhalb einer Transaktion jeweils für zwei Konten eine fortlaufende Zahl benötigt. Dann muss man dass in einem Rutsch anfordern (oder wenigstens den Lock anfordern), sonst kann es in dieser Situation zu einem Deadlock kommen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat