Einmalige UID mit Coustom-UID SQL

R3N3P

Grünschnabel
Meine SQL Tabelle:

ID (AUTO_INCREMENT) | UID(Kann eine zahl sein die länger als 30-50 Stellen lang werden kann) | Username
1 | 1 | Test1
2 | 2 | Test2
3 | 4 | Test3
4 | 8 | Test4

Ich möchte gerne eine function die mir die zahl 3 in der UID als freie stelle in einem result wiedergibt und ggf. ein insert in der UID 3 einfügt macht.
 
Sorry aber ich verstehe kein Wort.

Soll die 3 die bei UID nicht belegt ist ermittelt werden und für den nächsten gespeicherten Datensatz verwendet werden?
 
Es leuchtet auch mir nicht ganz ein, was du tun willst. Falls du tatsächlich eine "schöne" User-ID haben willst: Das würde ich nicht machen. Verwende die ID aus dem Autoincrement-Feld. Die ist dazu da und garantiert unique.

Falls du es dennoch anders machen willst, hätte ich zwei Ansätze:

1. Einen Zähler von 1 ab hochlaufen lassen und jede Zahl abfragen, ob sie vorhanden ist. Das kann aber bei vielen Nutzern unanständig aufwändig werden.

2. Eine schnellere Lösung wäre es, Nutzer nicht komplett zu löschen, sondern in deiner Tabelle ein Löschkennzeichen hinzuzufügen. Wenn du eine neue User-ID benötigst, gibt es bei Mysql eine Funktion MIN(), mit der du die kleinste Zahl eines Bereichs abfragen kannst. Also:
SELECT MIN(UID) WHERE GELOESCHT = 1

Von beidem rate ich ab. Nimm den Autoincrement-Wert. Deine Datenbank soll funktionieren und nicht "schön" aussehen :)
 
Zurück