Michael Schröpl: MySQL: wie definiert man (primär)schlüssel?

Beitrag lesen

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?

CREATE TABLE shop (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
dealer  CHAR(20)                 DEFAULT ''     NOT NULL,
price   DOUBLE(16,2)             DEFAULT '0.00' NOT NULL,
PRIMARY KEY(article, dealer));

Das hingegen kommt mir schon viel bekannter vor.