[MySQL] Datensaetze in MySQL-DB loeschen und einfuegen

Toengel

Commander
Registriert
Aug. 2001
Beiträge
2.530
[PHP] Datensaetze in MySQL-DB loeschen und einfuegen

Tachchen,

also ich hab folgendes Problem. Wenn ich einen Datensatz (also ne Zeile [Tupel] in einer Tabelle) aus meiner DB loesche und danach einen neuen Datensatz einfuege, speichert er diesen an derselben Stelle, wo ich vorher den Datensatz geloescht habe. Wie kann ich das aendern, dass er den neuen Datensatz immer an das Ende der Tabelle schreibt?

Toengel@Alex
 
was meinst du mit Ende !?

was genau ist dein Problem !?
 
Tachchen,

also nehmen wir mal an, ich habe 3 Datensaetze in einer Tabelle:

1: erster Datensatz
2: zweiter Datensatz
3: dritter Datensatz

Wenn ich nun den zweiten Datensatz loesche, habe ich ja nur noch:

1: erster Datensatz
2: dritter Datensatz

Wenn ich jetzt einen neuen Datensatz einfuege, sieht das folgendermassen aus:

1: erster Datensatz
2: neuer Datensatz
3: dritter Datensatz

Ich will aber, dass es so aussieht:

1: erster Datensatz
2: dritter Datensatz
3: neuer Datensatz

Toengel@Alex
 
Es gibt in MySQL-Tabellen in dem Sinne keine Standard-Reihenfolge. In welcher Reihenfolge du die Daten ausliest bestimmst du mit dem ORDER BY Statement in deiner Query. Du kannst z.B. eine Spalte "id" mit dem auto_increment-Feature anlegen, sodass diese Spalte bei jedem neuen Datensatz auf BisherigeHöchsteID+1 gesetzt wird. Nach dieser Spalte kannst du dann eine Sortierung vornehmen.
 
Tachchen,

funktioniert erstmal 1a. Jetzt noch ne Frage: Kann ich die id Spalte mit den auto_increment Werten reorganisieren? Also wenn ich folgendes habe:
1: id-1
2: id-5
3: id-7
und ich
1: id-1
2: id-2
3: id-3
haben will? Geht das zufaellig irgendwie per Befehl? Weil meine Frage ist, wenn ich die ID-Spalte mit INT belege, was passiert, wenn die id auf ueber 32768 ansteigt?

Toengel@Alex
 
du solltest dir schon beim strukturieren der DB Gedanken darüber machen, was wie wo wie oft reinkommt, sollte es also wahrscheinlich oder auch nur möglich sein, dass so viele Datensätze gespeichert werden, solltest auch einen entsprechenden Zahlenwert wählen, der diese Anzahl fassen kann

solltest du im nachhinein erst draufkommen, dass der Datentyp zu klein ist, kannst du ihn aber immer noch auf einen anderen umstellen ...
 
Original erstellt von Toengel
Kann ich die id Spalte mit den auto_increment Werten reorganisieren? Also wenn ich folgendes habe:
1: id-1
2: id-5
3: id-7
und ich
1: id-1
2: id-2
3: id-3
haben will? Geht das zufaellig irgendwie per Befehl?
Das hat schon seinen Sinn, dass einmal gelöschte IDs nie wieder automatisch belegt werden. Wenn du z.B. eine News hast, die auf einer anderen Website verlinkt wird, du die News dann aber löschst du eine andere News die frei gewordene ID bekommt, stimmt der Link auf der fremden Website ja nicht mehr. Der wäre dann ja völlig aus dem Zusammenhang gerissen, da er auf eine andere News zeigt, anstatt eine Fehlermeldung wegen der nicht mehr vorhandenen News auszugeben...
 
2. würde es viel zu aufwendig sein, wenn die mysql db jedes mal die ganzen tables abklappern müsste um zu sehen wo noch id´s offen sind um diese zu stopfen, so wäre das ganze db system viel langsamer :)
 
Zurück
Oben