hommling Geschrieben 16. Dezember 2002 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
hommling Geschrieben 16. Dezember 2002 Autor Geschrieben 16. Dezember 2002 Hallo nochmal! Habe schon mal bei google weitergesucht und die Antwort gefunden! Hat sich erledigt! Hommling:marine
Jaraz Geschrieben 16. Dezember 2002 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
byte Geschrieben 17. Dezember 2002 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 ).
Chaosmaker Geschrieben 17. Dezember 2002 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).
hommling Geschrieben 17. Dezember 2002 Autor 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
Jaraz Geschrieben 17. Dezember 2002 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
hommling Geschrieben 17. Dezember 2002 Autor 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
Jaraz Geschrieben 17. Dezember 2002 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden