| SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden. |
 |

10-09-2007, 14:52
|
|
JimmDaBimm
Registrierter Benutzer
|
|
Registriert seit: Jun 2007
Beiträge: 53
|
|
auto_increment Frage
Hi,
ich bastel grad ein kleines Forum und da ist mir bei den IDs der Threads und Posts aufgefallen, dass immer von der zuletzt vergebenen ID weitgezählt wird.
Sprich selbst wenn ich die komplette Tabelle leere zählt von der ID weiter die dort als letztes vergeben wurde. An sich ist es ja kein Problem aber dennoch würde mich interessieren, wie ich das zurücksetzen kann. Also dass er wieder bei 0 anfängt. Oder gibt es gar eine Möglichkeit, beim erstellen der Einträge automatisch eine noch nciht verwendete ID zu benutzen auch wenn der letzte Eintrag einen höheren IDwert hat ?
beste Grüße
Dave
|

10-09-2007, 14:55
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
TRUNCATE TABLE tabelle;
setzt auch auto_increment zurück
Ansonsten gibts da in PMA unter Operationen auch die Möglichkeit~ wie der Query dazu ist sagt das Manual.
Und nein, du willst keine Lücken in einer ID-Spalte füllen - google/forensuche für Gründe.
|

10-09-2007, 18:09
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
Re: auto_increment Frage
Zitat:
|
Oder gibt es gar eine Möglichkeit, beim erstellen der Einträge automatisch eine noch nciht verwendete ID zu benutzen auch wenn der letzte Eintrag einen höheren IDwert hat ?
|
Der nächste Auto_increment-Wert ist immer max(id)+1, da hast du keine Chance! Das ist ein Schutzmechanismus von MySQL, so dass ein auto_increment nicht selbsttätig auf ein Duplicate entry läuft!
|

10-09-2007, 18:28
|
|
ministry
PHP Junior
|
|
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
|
|
Re: Re: auto_increment Frage
Zitat:
Original geschrieben von PHP-Desaster
Der nächste Auto_increment-Wert ist immer max(id)+1, da hast du keine Chance! Das ist ein Schutzmechanismus von MySQL, so dass ein auto_increment nicht selbsttätig auf ein Duplicate entry läuft!
|
Das ist so nicht richtig. Wenn du den letzten Datensatz löscht, wird die ID nicht wiederverwendet. (Eine Ausnahme ist im Manual beschrieben).
Außerdem kannst du den Auto-Increment-Wert mittels ALTER TABLE tbl AUTO_INCREMENT = x; auch umstellen.
Guckst du hier.
|

11-09-2007, 08:55
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
ok, du hast recht! immer stimmt natürlich nur, wenn du keinen Datensatz vorher löschst. Dann muss ich mich korrigieren:
Der kleinste auto_increment-Wert ist immer MAX(id)+1. Selbst wenn du ein Alter Table absetzt, wird der auto_increment nur verändert, wenn der neue Wert >= MAX(id)+1 ist!
|

11-09-2007, 09:40
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
innodb setzt übrigens den auto_increment Wert bei einem Neustart automatisch wieder auf MAX(id)+1, demnach sinkt er in dem Fall eventuell, sofern man hinten Datensätze gelöscht hat~
|

11-09-2007, 13:42
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
Zitat:
Original geschrieben von ghostgambler
innodb setzt übrigens den auto_increment Wert bei einem Neustart automatisch wieder auf MAX(id)+1, demnach sinkt er in dem Fall eventuell, sofern man hinten Datensätze gelöscht hat~
|
Stimmt, da habe ich gar nicht dran gedacht! Sehr gut
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|