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

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Souli
Mitglied
Beiträge: 45
Registriert: 23.10.2003 22:20

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

Beitrag 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
Souli
Mitglied
Beiträge: 45
Registriert: 23.10.2003 22:20

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Ich kenne jetzt die genaue Syntax nicht auswendig, aber Grundvorrausetzung ist AFAIK daß du InnoDB Tabellen (anstatt MyISAM) verwendest.
KB:knigge
Antworten

Zurück zu „Coding & Technik“