[PHPMyAdmin] Fremndschlüssel über mehrere Spalten

battue

Redshirt
Mitglied seit
12.06.2014
Beiträge
1
Renomée
0
Hallo P3DN Gemeinde,

ich bin neu hier, aber denke, dass ihr mir helfen könnt.
Ich sitze gerad an einer PHP-Page die Daten einer MySQL Datenbank verarbeitet.
Innerhalb der DB habe ich die Tabellen (Projekt, Position und Unterposition).
In Position befinden sich die Spalten ProjNr [Fremdschlüssel zu Projekt], PosNr und AntrNr (gemeinsam der PRIMARY KEY für Position).
In Unterposition möchte ich jetzt einen Fremndschlüssel zu Position erzeugen. Also quasi über Unterpostion.ProjNr, Unterpositioin.PosNr und Unterposition.AntrNr zusammen.

Ich habe also in PHPMyAdmin folgenden SQL Befehl versucht in Unterposition auszuführen:
Code:
ALTER TABLE `unterposition` ADD FOREIGN KEY ( `ProjNr`, `PosNr`, `AntrNr` )
REFERENCES `position` ( `ProjNr`, `PosNr`, `AntrNr` )
ON UPDATE CASCADE
ON DELETE CASCADE;

Hierbei erhalte ich jedoch folgenden Fehler:
#1452 - Cannot add or update a child row: a foreign key constraint fails...

Die Tabellen sind alle InnoDB und die Spalten haben in allen Tabellen die gleichen Eigenschaften.
Ohja, und in Position ist ja über die 3 Spalten der Index wegen des Primärschlüssels.
In Unterposition habe ich dann auchnoch einen Index über die 3 Spalten erzeugt

Die 3 Spalten sind notwendig, weil nur alle 3 den Datensatz exakt definieren.

Hoffentlich wisst ihr, wie ich dieses Problem lösen kann.

Gruß,
battue

---------- Beitrag hinzugefügt um 11:07 ---------- Vorheriger Beitrag um 11:01 ----------

Habe es bereits selbst lösen können.

In einer der Tabellen waren noch Daten vorhanden, weshalb er den SQL-Code nicht geschluckt hat ;)
 
Zurück
Oben Unten