hommling Geschrieben 16. Dezember 2002 Teilen Geschrieben 16. Dezember 2002 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hommling Geschrieben 16. Dezember 2002 Autor Teilen Geschrieben 16. Dezember 2002 Hallo nochmal! Habe schon mal bei google weitergesucht und die Antwort gefunden! Hat sich erledigt! Hommling:marine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 16. Dezember 2002 Teilen Geschrieben 16. Dezember 2002 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
byte Geschrieben 17. Dezember 2002 Teilen Geschrieben 17. Dezember 2002 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 ). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Chaosmaker Geschrieben 17. Dezember 2002 Teilen Geschrieben 17. Dezember 2002 Wie schon erwähnt, sollte man sowas besser lassen. Sofern es aber dennoch gewollt ist, dürfte ein "DELETE FROM table" helfen (auch bei einer leeren Tabelle). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hommling Geschrieben 17. Dezember 2002 Autor Teilen Geschrieben 17. Dezember 2002 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! Hommling Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 17. Dezember 2002 Teilen Geschrieben 17. Dezember 2002 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. 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hommling Geschrieben 17. Dezember 2002 Autor Teilen Geschrieben 17. Dezember 2002 Hihihi! VERFECHTER DES AUTO_INCREMENTS: VEREINIGT EUCH !!! 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. Trotzdem Danke! Habe verstanden, was Du mir sagen wolltest ! Hommling Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 17. Dezember 2002 Teilen Geschrieben 17. Dezember 2002 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.