Andreas Korthaus: Erste freie Nummer aus einer MySQL-DB auslesen.

Beitrag lesen

Hallo!

ich möchte, wie im Titel schon gesagt, erste freie Nummer aus einer MySQL-DB auslesen. In der DB-Spalte sind die Nummern nicht durchgehend vergeben (würde gar nicht gehen). Beim Einfügen möchte ich immer die niedrigste Nummer verwenden, damit die Zahlen nicht sehr groß werden können. Wie könnte das gehen, ich habe leider keine brauchbare Idee

Du müsstest die Tabelle für Schreib- und Lesevorgänge während des ganzen Vorgangs sperren (Stichwort LOCK), dann die höchsten auslesen(SELECT...ORDER BY id DESC LIMIT 0,1), danach müßtest Du solange der LOCK altiv ist diese ID dann auch in die DB schreiben, sonst kan es passieren dass 2 Datensätze die gleiche ID bekommen.

Aber warum willst Du das? Hast Du Angst dass das Feld überläuft?
http://php-faq.de/q/q-mysql-inkrement.html

Es ist nicht gut alte IDs neu zu vergeben: http://php-faq.de/q/q-sql-ids.html

Grüße
Andreas