Autor |
Nachricht |
Sluggy
Threadersteller
Dabei seit: 11.02.2005
Ort: Dortmund
Alter: -
Geschlecht:
|
Verfasst So 22.10.2006 09:23
Titel [MySQL] auto_increment anpassen nach Löschen von Datensätzen |
|
|
Hallo!
Ich nutze gezwungenermaßen MySQL 4.0.24 und phpMyAdmin 2.4.0. In späteren Versionen kann man - soweit ich mich erinner - mit phpMyAdmin den auto_increment-Wert den tatsächlichen Datensätzen anpassen.
Da ich einige Datensätze gelöscht habe, muss ich ihn nunmehr manuell anpassen.
Kennt jemand den SQL-Befehl?
Zuletzt bearbeitet von Sluggy am So 22.10.2006 09:25, insgesamt 1-mal bearbeitet
|
|
|
|
|
tacker
Dabei seit: 22.03.2002
Ort: Trondheim, Norwegen
Alter: 43
Geschlecht:
|
Verfasst So 22.10.2006 09:59
Titel
|
|
|
Den auto_increment-Wert anzupassen bringt gar nichts, und man sollte es auch nicht machen.
Stell dir vor Du oder jemand anderes verweist in seinen Daten auf deine ID 18, wenn der Daten
taucht die ID 18 jetzt mit nem ganz anderen Datensatz wieder auf gibts da schnell Probleme.
Es ist einfach sauberer die IDs immer weiter hoch zu zählen, egal wie viele Datensätze
inzwischen gelöscht wurden.
|
|
|
|
|
Anzeige
|
|
|
Sluggy
Threadersteller
Dabei seit: 11.02.2005
Ort: Dortmund
Alter: -
Geschlecht:
|
Verfasst So 22.10.2006 12:26
Titel
|
|
|
tacker hat geschrieben: | Den auto_increment-Wert anzupassen bringt gar nichts, und man sollte es auch nicht machen.
Stell dir vor Du oder jemand anderes verweist in seinen Daten auf deine ID 18, wenn der Daten
taucht die ID 18 jetzt mit nem ganz anderen Datensatz wieder auf gibts da schnell Probleme.
Es ist einfach sauberer die IDs immer weiter hoch zu zählen, egal wie viele Datensätze
inzwischen gelöscht wurden. |
Es bringt ne Menge in meinem Fall, da ich "saubere" Daten in SPSS übernehmen muss. Die von mir gelöschten Datensätze sind lediglich Testdurchläufe und keine gültigen Werte einer Versuchsperson. Und so ganz unwichtig kann es ja nicht sein, denn in neueren phpMyAdmin - Versionen ist diese Operation ja auch auf Knopfdruck möglich. Dennoch danke!
|
|
|
|
|
schachbrett
Dabei seit: 11.10.2006
Ort: Köln
Alter: -
Geschlecht:
|
Verfasst So 22.10.2006 12:27
Titel
|
|
|
ALTER TABLE name_deiner_tabelle AUTO_INCREMENT=neuer_wert;
Ueberleg dir aber wirklich, ob du es benoetigst... du kannst deine Daten damit leicht durcheinander bringen
Gruss
|
|
|
|
|
darkGFX
Dabei seit: 21.11.2005
Ort: Bayern
Alter: -
Geschlecht:
|
Verfasst So 22.10.2006 12:37
Titel
|
|
|
Etwas umständlicher aber vielleicht eine Lösung!
Wenn man einen Datensatz löscht kann man doch die ID in einer zusätzlichen Tabelle speichern. Wenn man dann einen neuen Datensatz speichert, wählt man zuerst eine ID aus dieser zusätzlichen Tabelle und schreibt sie dann ohne Probleme in die echte Tabelle.
Geht das vielleicht so? Damit wäre auch keine Gefahr da, dass Daten überschrieben werden. Aber man müsste die ID dann auch aus der zusätzlichen Tabelle löschen.
Ich bin kein Profi, aber so müsste es doch gehen oder?
Zuletzt bearbeitet von darkGFX am So 22.10.2006 12:38, insgesamt 1-mal bearbeitet
|
|
|
|
|
Sluggy
Threadersteller
Dabei seit: 11.02.2005
Ort: Dortmund
Alter: -
Geschlecht:
|
Verfasst So 22.10.2006 12:55
Titel
|
|
|
schachbrett hat geschrieben: | ALTER TABLE name_deiner_tabelle AUTO_INCREMENT=neuer_wert;
Ueberleg dir aber wirklich, ob du es benoetigst... du kannst deine Daten damit leicht durcheinander bringen
Gruss |
Danke dir!! Das habe ich gesucht. Ich werde deinen Rat in jedem Fall beherzigen und vorsichtig sein.
Allen noch einen schönen Sonntag!!!
|
|
|
|
|
pRiMUS
Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht:
|
Verfasst So 22.10.2006 18:17
Titel
|
|
|
FINGER WEG VON IDs!
wenn du fortlaufende nummern willst, mach das in einer extra spalte und nicht in der spalte in der auto_increment keys enthalten sind.
|
|
|
|
|
alien
Dabei seit: 06.07.2006
Ort: aus der Phantasie
Alter: -
Geschlecht:
|
Verfasst Sa 19.05.2012 13:06
Titel
|
|
|
Hi,
ich habe diesen Beitrag über Google gefunden und möchte dieses Thema erneut aufgreifen.
Was kann man denn tun, wenn man nur einzelne Datensätze innerhalb einer Tabelle löschen möchte und sich AUTO-INCREMENT automatisch zurücksetzen soll?
Beispiel:
[0] Eintrag 1
[1] Eintrag 2 <- diesen Eintrag löschen
[2] Eintrag 3
(Wunsch) Ergebnis:
[0] Eintrag 1
[1] Eintrag 3
Bisher habe ich die Anweisungen ALTER TABLE und TRUNCATE gefunden. Allerdings löschen diese alle Datensätze innerhalb einer Tabelle und setzen erst dann AUTO_INCREMENT zurück.
|
|
|
|
|
|
|
|
Ähnliche Themen |
[mySQL] Datensätze löschen
MySQL: Bereich von x bis y löschen
file vom server löschen mit mysql
[MySQL] Probleme bei Abfrage/Löschen aus Verbindungstabelle
MySQL & PHP: Webseiten Inhalt nach Artikel Typ anpassen
[PHP&MySQL]mehrere Einträge via "checkbox" löschen
|
|