MySQL Reihenfolge der Einträge

Hi,

Ich bin noch nicht lange bei MySQL hab mir aber angewöhnt für jedes und alles aine ID mit autoincrement als Primarykey als erte Spalte zu nehmen.
Da ist mir doch was aufgefallen:
Ich habe z.B. Tabelle mit einer Spalte:
ID
1
2
3
4
5

Wenn ich jetzt einige lösche siht es so aus:
ID
1
6
7
4
5
Wie kann ich vermeiden, das die gelöschten Stellen wieder besetzt werden?
Wir bekomme ich im nachhinein wieder eine Rheihenfolge dahin?

Und dann gleich frage 2:
Was hat es mit
Primary
Index
und Uniqe auf sich?

Was gild in welchem bereich?

cu Desiam

Wie kann ich vermeiden, das die gelöschten Stellen wieder
besetzt werden?

Sie werden sowieso nicth wieder besetzt bei auto-increment Spalten, von daher musst du da gar nix tun, schwieriger wäre es wenn du willst dass sie wieder besetzt werden :wink:

Wie bekomme ich im nachhinein wieder eine Rheihenfolge dahin?

Gar nicht, die Datensätze in einer Tabelle haben keine Reihenfolge, bei der Abfrage musst du sortieren mit ORDER BY

Und dann gleich frage 2:
Was hat es mit
Primary

Primärschlüssel, muss eindeutig sein, is meistens eben so ein autoincrement id Feld.

Index

Indiziertes Feld, Abfragen nach diesem Feld sind wesentlich schneller, da nicht die ganze Tabelle sondern ein sortierter Index durchsucht werden muss. Einfügen geht dagegen langsamer, weil der Index auch bearbeitet werden muss. Lohnt sich nur für Felder, auf die oft abgefragt wird und Tabellen die eine hohe Abfragezahl im Vergleich zu den Änderungen haben (z.B. die meisten Webanwendungen).

und Uniqe auf sich?

eindeutig… keine zwei Einträge in der Tabelle dürfen hier einen gleichen Wert haben

Hi,

und Uniqe auf sich?

eindeutig… keine zwei Einträge in der Tabelle dürfen hier
einen gleichen Wert haben

Was passiert dann mit dem wert, wenn ein 2tes mal versucht wird ihn zu INSERTen?
Geht er verloren uder wird das Feld mit dem schon eingetragenen verknüpft, so das er in einer SELECT-Anfrage trotzdem zu sehen ist?

cu Desian

Was passiert dann mit dem wert, wenn ein 2tes mal versucht
wird ihn zu INSERTen?

Habs nie ausprobiert, aber eigentlich sollte das Datenbanksystem das INSERT ablehnen und der Datensatz wird nicht eingefügt

Geht er verloren uder wird das Feld mit dem schon
eingetragenen verknüpft, so das er in einer SELECT-Anfrage
trotzdem zu sehen ist?

Verknüpft? was soll denn das sein, ne das bestimmt nicht