Ich muss eine Abfrage schreiben, in der ich einen ID
(eindeutigen Schlüssel) für einen bestimmten Datensatz zuordnen muss, der nicht verwendet wird/nicht generiert wird/nicht in der Datenbank existiert.Wie bekomme ich die erste ungenutzte ID in der Tabelle?
Kurz gesagt, ich muss einen id
für einen bestimmten Datensatz erstellen und auf dem Bildschirm anzeigen.
E. g .:
ID Name 1 abc 2 def 5 ghi
Also, die Sache ist, dass es ID=3
als nächstes sofort zurückgeben soll, die noch nicht erzeugt wird, und nach dieser Generation des id
, werde ich diese Daten speichern zurück zur Datenbanktabelle.
Es ist keine HW: Ich mache ein Projekt, und ich habe eine Anforderung, wo ich diese Abfrage schreiben muss, also brauche ich etwas Hilfe, um dies zu erreichen.
Also bitte führen Sie mich, wie diese Abfrage zu machen, oder wie dies zu erreichen.
Danke.
Ich bin nicht in der Lage Kommentare hinzufügen ,, so thats, warum ich meine Kommentare hier schreibe .. ich MySQL als Datenbank benutze ..
Meine Schritte so sein würde: -
1) Abrufen der ID aus der Datenbanktabelle, die nicht verwendet wird.
2) Wie sie sind nein. von Benutzern (website-basiertes Projekt), also möchte ich keine Nebenläufigkeit, also wenn eine ID für einen Benutzer generiert wird, sollte sie die Datenbank sperren, bis derselbe Benutzer die ID erhält und den Datensatz für diese ID speichert. Danach kann der andere Benutzer die ID abrufen, die nicht existiert. (Hauptanforderung) ..
Wie kann ich all diese Dinge in MySQL erreichen? Auch ich nehme Quassnoi's Antwort wird wert sein, aber es ist nicht wert Arbeiten in MySQL .. so erklären plz das Bit über die Abfrage, wie es neu für mich ist .. und wird diese Abfrage in MySQL funktionieren ..
Welche RDBMS verwenden Sie für Ihr Projekt? – Quassnoi
Vorsicht mit Gleichzeitigkeit, hier. Wenn Sie mehrere Benutzer haben, kann die Zeitlücke zwischen der Ausführung der Quassnoi-Abfrage und dem Speichern der Ergebnisse in der Datenbank zu doppelten IDs führen. Warum lassen Sie das RDBMS nicht einfach Ihre ID-Spalten verwalten? –
Wie DDaviesBrackett schreibt, wenn dies keine Hausaufgaben sind, leidet es unter einem ernsten Problem der realen Welt: Zwei Prozesse können die Abfrage ausführen und ihre Antwort erhalten, und dann versucht jeder, einen doppelten Datensatz einzufügen. Wenn das nur die Frage beantworten soll: Gibt es Lücken? das ist anders. Es ist dann nur lustig, dass sich jemand darum kümmern würde. – Yishai