Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

AW: [PLSQL] Gibt es ein "Select oder Insert"- Befehl?

  Alt 5. Jul 2010, 16:30
Das Grundproblem ist die ungeeignete Erzeugung des Wertes für den Primärschlüssel.
Select count(ID) into c from ... Wehe es wird ein Datensatz gelöscht - dann gerät das ganze System durcheinander.
Besser ist da:
Select Max(ID)+1 into c from ... Aber auch das ist nicht wasserdicht wenn mehr als ein Prozess/Thread das abarbeitet.
Was man hier wirklich bräuchte wäre ein Generator.
Dann würde man zuerst mit dem Generator eine "neue Nummer ziehen" und könnte dann sicher sein, dass es keine Kollisionen von anderen Prozessen gibt.
Andreas

Geändert von shmia ( 5. Jul 2010 um 16:32 Uhr) Grund: Typo
  Mit Zitat antworten Zitat