Problem mit MySQL-Daten Änderung
philippo
- php
0 Tobias Kloth0 Ludger0 Tom
Hallo
ich habe folgende MySQL Tabellenstruktur:
ID NAME
1 Philipp
2 Dieter
3 Wolf
4 Heinz
Wenn ich nun den Zweiten Satz lösche (Dieter), habe ich das Problem, das die ID's mit 1,3,4 weiterlaufen. Es fehlt also die zwei.
Nun bräuchte ich einen Ansatz, wie ich nachdem ich gelöscht habe, die Tabelle nacheinander ducchgehe, und das ID Feld neu durchzunummerieren.
Gruß
philippo
Hallo philippo,
Nun bräuchte ich einen Ansatz, wie ich nachdem ich gelöscht habe, die Tabelle nacheinander ducchgehe, und das ID Feld neu durchzunummerieren.
lies bitte mal Punkt 16.16 der dclp-faq: Meine IDs haben Lücken - wie vergebe ich sie neu?.
Grüße aus Nürnberg
Tobias
Hallo Tobias,
lies bitte mal Punkt 16.16 der dclp-faq: Meine IDs haben Lücken - wie vergebe ich sie neu?.
Vielleicht als Tipp für philippo: Es gibt ja auch ein UNSIGNED BIGINT... ;-)
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Hi,
ID NAME
1 Philipp
2 Dieter
3 Wolf
4 HeinzWenn ich nun den Zweiten Satz lösche (Dieter), habe ich das Problem, das die ID's mit 1,3,4 weiterlaufen. Es fehlt also die zwei.
ja, das wird auch gerne nachgefragt. Ich habe schon mal eine firmeninterne policy gesehen, die fortlaufende IDs im o.g. Sinne angewiesen hat. :-)
Aber natuerlich ist jede Datenzugriffslogik, die eine fortlaufende ID erfordert, untauglich. Es gibt da auch fuer "user friendly" IDs keine Rechtferigung, fuer die technischen IDs sowieso nicht.
Gruss,
Ludger
Hello,
ID NAME
1 Philipp
2 Dieter
3 Wolf
4 Heinz
verstehen könnte ich, wenn Du eine Bestimmte Sortierung bei der Ausgabe haben willst. Das kommt häufig vor und ist durchaus legitim. Ein üblicher Timestamp ist z.B. für die Nachvollziehbarkeit der Eintragungsreihenfolge meistens nicht geeignet, da er zu grob ist. Ein Datenbanksystem kann durchaus mehrere Hundert Datensätze pro Sekunde einfügen.
Und freie Sortiermöglichkeiten benötigen wieder ganz andere Möglichkeiten.
Dazu gibt es aber hier im Forumsarchiv schon Lösungen, die sogar recht anspruchsvoll sind. Solltes das also dein Anliegen gewesen sein, müssten wir nochmal danach suchen.
Wenn Du aber nur einen geschlossenen Nummernkreis behalten willst, dann fragt sich, welchen Sinn diese ID noch haben könnte. In einer Multi-User-Umgebung, die eine Webapplikation mit Datenbankbackend ja darstellt, könnte sich doch niemand darauf verlassen, welche Person gerade welche Nummer hat. Irgendwer könnte schließlich, während ich noch den Bildschirm mit der Antwort auf meine erste Anfrage betrachte, eine ID austauschen. Wenn ich nun selber einen Datensatz bearbeiten will, un diesen über diese vermeintliche ID anspreche, habe ich plötzlich einen ganz anderen am Wickel.
Daher dürfen Primärschlüssel zu keiner Zeit wieder verändert werden. Man nennt sie daher auch "verlorene Schlüssel". Sie werden nicht wieder erteilt.
Harzliche Grüße vom Berg
esst mehr http://www.harte-harzer.de
Tom