Zum Inhalt springen

MySQL Befehl gesucht...


hommling

Empfohlene Beiträge

Hi !

Habe eine stinknormale Tabelle in MySQL, deren erste Spalte einen Index enthält, natürlich mit automatischer Nummerierung. Jetzt habe ich mal probehalber ein paar Datensätze eingefügt und anschließend wieder gelöscht. Die Tabelle ist quasi leer. Wenn ich nun wieder einen Datensatz einfüge, startet der Index auf einmal mit der Nummer 11. Sollte er hier nicht besser mit der Nummer 1 wieder beginnen? Gibt es eine Möglichkeit, MySQL mitzuteilen, dass er wieder bei 1 anfängt?

Hommling

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hoffe die gefundene Antwort lautet:

Finger weg vom Primärschlüssel!

Der dient nämlich zur eindeutigen Identifizierung eines Datensatzes.

Solange du nicht 100%ig weisst, das kein anderer Datensatz noch auf den gelöschten Datensatz verweist, kannst, sollst und darfst du die ID nicht neu vergeben.

Sonst kann aus Antibiotika, Buttersäure werden. ;)

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es ist auch immernoch schoen seinen Loesungsweg zu posten wenn man ihn gefunden hat, damit andere Leute fuer die gleiche nicht noch einen Thread aufmachen muessen. (Was sie ja ehh immer tun ).

O.K., O.K. -> Hummel, Hummel - Mors, Mors !

Habe folgende Lösung für das Problem:

Die MySQL-Datenbank wird in meinem Fall von einem PHP-Skript angesprochen. Die gefundene Lösung besagt, dass es das Beste sei, über den MySQL-Befehl "MAX()" sich den Datensatz mit der höchsten ID raus zu fischen, diesen Wert um einen zu erhöhen und dann mit der jetzt richtigen ID den neuen Datensatz an zu legen.

Das ist schon alles. Jedoch ist der Gedanke, scheinbar nicht benötigte Datensätze aus Tabellen zu löschen, ohne zu wissen, ob nicht ein Datensatz einer anderen Tabelle auf diesen zeigt, nicht verkehrt! Danke dafür, das hätte ich beinahe nicht in meine Überlegungen mit einbezogen.

Dass mit den Threads, die sich quasi durch den Fragenden selbst beantworten, ist zugegeben ziemlich beknackt. Sorry dafür! :rolleyes:

Hommling

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by hommling

Die gefundene Lösung besagt, dass es das Beste sei, über den MySQL-Befehl "MAX()" sich den Datensatz mit der höchsten ID raus zu fischen, diesen Wert um einen zu erhöhen und dann mit der jetzt richtigen ID den neuen Datensatz an zu legen.

Oh Oh, böse Falle. :rolleyes:

Man nehme den Fall an, du machst MAX(), bekommst den Wert, und bevor du den nächsten Datensatz eingefügt hast, macht ein anderer MAX().

Ihr habt also beide dieselbe ID und ein Datensatz geht verloren.

Der autoincrement Mechanismus hat schon seinen Sinn und seine Berechtigung.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Originally posted by hommling

Danke für den Hinweis, jedoch geht es in meinem Fall nur um eine Userin, die Zugriff auf die DB hat. Somit ist es Dein Beitrag hinfällig.

Außerdem ist deine Lösung nicht gerade performant.

Ja ja, ich weiss ist nur eine Userin, ob die nun 2 oder 30 Millisekunden wartet, ist auch egal.

Wenn ich sowas im Code einer von mir bestellten Anwendung sehen würde, würde ich sofort das Softwarehaus wechseln. ;) Ich hoffe es handelt sich nicht um dein Abschlussprojekt.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...