Hi Erik,
Also, wenn du sie nachträglich anfügen willst mit
»» ALTER TABLE tbl_name ADD INDEX index_name (index_col_name,...)Das Thema interessiert mich (angesichts meiner nicht vorhandenen MySQL-Kenntnisse):
Meines Wissens ist ein Index mitnichten dasselbe wie ein Primärschlüssel. Dein nachträglich angelegter Index ist ja noch nicht mal UNIQUE.
Insofern würde ich auch die Aussage, man könne einen Primärschlüssel auch nachträglich noch definieren, mit äußerster Vorsicht genießen: Was ist, wenn die entsprechenden Feldwerte eben gerade nicht eindeutig sind?
Ja, Index, Primary Key und Unique sind schon ein paar verschiedene Sachen.
Unique bedeutet, daß jedes Element eindeutig sein muß. Verwendet man meist dazu, um z. B. jedem Datensatz eine eindeutige Nummer zu geben.
Primary Key ist sozusagen ein Unique über mehere Spalten. Damit kann man Datensätze eindeutig zuordnen. Wenn man z. B. ne Tabelle mit Vorname, Nachname, Telefonnummer hat, kann ich dort 2 Leute eintragen, die den gleichen Vornamen und Nachnamen haben. Wenn ich nen Primary Key über Vorname und Nachname lege, und dann nach Vorname "Erik" und Nachname "Tews" suche, dann bekomme ich genau einen Datensatz, oder auch keinen. Aber ich kann nicht 2 Leute mit gleichem Namen in der Datenbank haben.
Index bedeutet dann halt nur, daß man damit Suchanfragen beschleunigen kann. (Und leider auch nicht alle, *schief*, nur welche mit where X = "y" oder where X like "x%", und noch so ein paar ähnliche. Aber keine wie where X like "%y%".)