# Primärschlüssel nachträglich hinzufügen



## kesnw (17. Januar 2005)

*Primärschlüssel nachträglich hinzufügen (MySQL)*

Hallo,

ich möchte meiner Tabelle nachträglich einen zweiten Primärschlüssel hinzufügen, bzw. meinen Primärschlüssel um ein Feld erweitern.

Wenn ich eine neue Tabelle anlege dann geht das ja so:


```
CREATE TABLE `test` (
`eins` VARCHAR( 10 ) NOT NULL ,
`zwei` VARCHAR( 10 ) NOT NULL ,
PRIMARY KEY ( `eins` , `zwei` ) 
);
```

Nun existieren die Felder 'eins' und 'zwei' bereits in der Tabelle und 'eins' ist der Primärschlüssel. Wie kann ich nun 'zwei' nachträglich hinzufügen, so dass beide Felder zusammen den Primärschlüssel ergeben?


----------



## savvo (18. Januar 2005)

Hallo 

Bin mir leider nicht sicher da ich kein MySQL zur Zeit vor mir habe, aber versuch mal


```
ALTER TABLE test ADD drei VARCHAR(10) NOT NULL, PRIMARY KEY(eins, zwei, drei);
```


----------



## kesnw (18. Januar 2005)

Danke, nochmal zum Verständnis:

"eins" und "zwei" existieren schon und "eins" ist alleiniger Primärschlüssel. Jetzt möchte ich aber "eins" UND "zwei" als Primärschlüssel haben. Sowas wie


```
ALTER TABLE test PRIMARY KEY('eins','zwei');
```

geht leider nicht...


----------



## redlama (18. Januar 2005)

Da Du bereits einen Primary Key definiert hast, gibt es wahrscheinlich deshalb Probleme, denn es wird versucht ein neuer Promary Key anzulegen, aber ein existierender gefunden. Und wie wir ja wissen, darf es nur einen Primary Key geben.
Du solltest vorher folgendes machen:
	
	
	



```
ALTER TABLE test DROP PRIMARY KEY;
```
Das sollte eigentlich helfen. Wenn nicht, hier ein Link zur ALTER TABLE-Syntax

redlama


----------

