Seite 1 von 1

MySQL: Kann man einen Fremdschlüssel hinzufügen ?

Verfasst: 19.06.2006 21:45
von Souli
Hallo Leute,

ich bin mir da jetzt echt nicht sicher, da ich die Beschreibungen,
die ich bisher fand, nicht sehr aufschlussreich fand.
Meine Versuche am MySQL Command Line Clinet schlugen bisher
leider fehl.

Also folgende Situation.
Ich habe zwei Tabellen mit bestimmten Zeilen:
Tabelle 1: personen
Spalten: id (Primärschlüssel), zuname, vorname
Tabelle 2: anschrift
Spalten: nr (Primärschlüssel), strasse, plz, ort

Ich habe diese beiden Tabellen angelegt und mit jeweils vier
Datensätzen gefüllt.
Eine Abfrage über beide Tabellen mit
SELECT * FROM personen INNER JOIN anschrift ON personen.id=anschrift.nr;
funktioniert problemlos.

Nun möchte ich aber den Primärschlüssel der Tabelle 1 (id) als
Fremdschlüssel in der Tabelle 2 haben.

Mit ALTER TABLE scheint es nicht zu gehen...
mit dem ADD bzw. ADD CONSTRAINT komme ich irgendwie nicht
zurecht.

Ist das prinzipiell überhaupt möglich, nachträglich den Fremdschlüssel
zu erstellen ?

Danke schonmal im voraus
Souli

Verfasst: 19.06.2006 21:56
von Souli
HeyHo,
habe unter http://de.wikibooks.org/wiki/SQL:_Befehle
folgendes entdeckt:

Foreign-Key erstellen:

ALTER TABLE testtab ADD CONSTRAINT foreign_key_bezeichnung FOREIGN KEY (feld1) REFERENCES tab2 (feld2)

...aber wie wende ich das in meinem Fall an ?

Souli

Verfasst: 19.06.2006 23:22
von Pyramide
Ich kenne jetzt die genaue Syntax nicht auswendig, aber Grundvorrausetzung ist AFAIK daß du InnoDB Tabellen (anstatt MyISAM) verwendest.