Erste freie Nummer aus einer MySQL-DB auslesen.
Thomas G.
- php
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
Danke im Voraus,
Thomas G.
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