# Primary Key ändern



## mdoemli (25. Jul 2005)

Hallo zusammen,

ich habe eine MySql Datenbank mit zwei Tabellen.


```
create table indexK(
			id      int ,
			Primary Key(id)
		);

create table koordinaten(
			pid	MEDIUMINT NOT NULL AUTO_INCREMENT,
			id      int,
			x	double,
			y	double,
			date	varchar(20),
			time	varchar(20),
			primary key(pid, id),
			foreign key(id) references indexK(id) on delete cascade
			);
```

Jetzt würde ich gerne die Tabelle indexK so umändern.


```
create table indexK(
			id      int ,
			vin	char(100),
			Primary Key(id, vin)
		);
```

und koordinaten bleib gleich.

Ich hab es mit 


```
alter table indexK drop primary key;
```

versucht, aber da bekomme ich immer einen Fehler.


```
mysql> alter table indexK drop primary key;
ERROR 1025 (HY000): Error on rename of '.\trackingtool\#sql-554_5b' to '.\tracki
ngtool\indexK' (errno: 150)
mysql>
```

Dann habe ich versucht die Schlüssel in Koordinaten zu löschen und neu anzulegen hat auch nicht geklappt.

Weiß jemand wie das funktioniert?

Gruß,

mdoemli


----------



## Bleiglanz (25. Jul 2005)

wennschon dann

DROP id

(die spalte heisst ja "id" und nicht "primary key")


----------



## mdoemli (25. Jul 2005)

Aber ich will ja nicht die Spalte id löschen, sonst gehen mir ja die Werte verloren.
Möchte eine neue Spalte vin einfügen und dann einen neuen Primary Key aus id und vin erstellen


----------



## mdoemli (25. Jul 2005)

Na ja,
hab jetzt noch mal zwei neue Tables erstellt und die Werte dann kopiert.
Wenn noch jemand weiß wie man das auch schöner machen kann, würd mich auf Antwort freuen.

Gruß,

mdoemli


----------



## Bleiglanz (25. Jul 2005)

dann mach halt

alter table drop constraint (der name des primary key constraints)

alter table add column

add constraint...

schau in die mysql doku wie genau das geht


----------



## P3AC3MAK3R (25. Jul 2005)

Schau mal hier:

http://www.mysqlfreaks.com/errors/35.php

Die Syntax, die zum Entfernen des Primärschlüssels verwendet hattest, war schon richtig.

Vielleicht solltest Du besser komplett auf Großbuchstaben in Tabellennamen verzichten.


----------



## mdoemli (25. Jul 2005)

Vielen Dank für die Hilfe.


----------

