PhilippGer
Mitglied
Hallo.
Ich komme bei folgender Sache nicht weiter:
Ich möchte, dass sich ein Spaltenwert mittels Foreign Key auf den Primärschlüssel der selben Tabelle bezieht.
Sagen wir z.B. eine Tabelle mit allen Angestellten einer Firma und ich möchte zu jedem Angestellten den Vorgesetzten (als Referenz auf eine andere Zeile der Tabelle) speichern.
Wenn ich diese Beziehungen in eine eigene Tabelle auslagere, funktioniert alles super, aber es sollte doch auch mit einer gehen?
Code mit einer Tabelle (funktioniert nicht):
Code mit 2 Tabellen (funktioniert):
Funktioniert soein Constraint nicht in der eigenen Tabelle?
Ich komme bei folgender Sache nicht weiter:
Ich möchte, dass sich ein Spaltenwert mittels Foreign Key auf den Primärschlüssel der selben Tabelle bezieht.
Sagen wir z.B. eine Tabelle mit allen Angestellten einer Firma und ich möchte zu jedem Angestellten den Vorgesetzten (als Referenz auf eine andere Zeile der Tabelle) speichern.
Wenn ich diese Beziehungen in eine eigene Tabelle auslagere, funktioniert alles super, aber es sollte doch auch mit einer gehen?
Code mit einer Tabelle (funktioniert nicht):
Code:
CREATE TABLE `Angestellte` (
`id` INT UNSIGNED NOT NULL ,
`chef` INT UNSIGNED NOT NULL ,
FOREIGN KEY(chef) REFERENCES Angestellte(id) ON DELETE CASCADE,
PRIMARY KEY ( `id` )
);
Code mit 2 Tabellen (funktioniert):
Code:
Create Table Angestellte( id int unsigned not null primary key)
CREATE TABLE anstellungen(
mitarbeiter int unsigned not null,
chef int unsigned not null,
FOREIGN KEY(mitarbeiter) REFERENCES Angestellte(id) ON DELETE CASCADE,
FOREIGN KEY(chef) REFERENCES Angestellte(id) ON DELETE CASCADE,
Primary Key( mitarbeiter, chef))
Funktioniert soein Constraint nicht in der eigenen Tabelle?