MySql auto_increment Problemstellung

maniii

Grünschnabel
Ich habe eine Tabelle mit einem Schlüsselfeld, das auto_increment ist. Ich möchte aber zum Zeitpunkt des Speicherns schon wissen, mit welchem Wert dieses Feld befüllt wird. Kann man das irgendwie herausfinden?
 
Erstmal 'ne kurze Frage: Warum?

Du koenntest zum einen vor dem INSERT einen SELECT machen, ORDER BY id DESC LIMIT 1. Damit bekommst Du den Eintrag mit der hoechsten ID. Die ID+1 und schon hast Du theoretisch den richtigen Wert.
Das kann aber durch synchrone Schreiboperationen durcheinander gebracht werden.
Moeglicherweise liest Du als ID 7 aus, also sollte die naechste 8 sein. Jedoch schreibt ein anderer Prozess zwischen dem Auslesen und Schreiben einen Eintrag in die DB, natuerlich mit der ID 8.
Dann bekommt der Eintrag den Du als ID 8 erwartest ploetzlich die ID 9. Was dann bei Dir Chaos ausloesen kann.
Wenn ich direkt nach dem INSERT den Datensatz brauche starte ich ein SELECT mit allen eingetragenen Daten. Da ist die Chance ziemlich gross genau den richtigen zu treffen. Insbesondere da ich in diesen Faellen auch mit Timestamps arbeite.
 
Zurück