ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
348
348
EMPFEHLEN
-
24.02.11 18:17 #1
- Registriert seit
- Jun 2009
- Beiträge
- 26
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 :1 2 3 4 5 6
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 :1 2 3 4 5 6 7 8
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?
-
24.02.11 18:37 #2
Hallo PhilippGer,
ich glaube es hapert bei dir nur an einer Kleinigkeit:
Versuche einmal Folgendes:`chef` INT UNSIGNED NOT NULL
Code :1 2 3 4 5 6 7
CREATE TABLE IF NOT EXISTS `angestellte` ( `id` int( 11 ) NOT NULL AUTO_INCREMENT , `chef` int( 11 ) DEFAULT NULL , `name` varchar( 30 ) NOT NULL , FOREIGN KEY ( chef ) REFERENCES angestellte( id ) ON DELETE SET NULL , PRIMARY KEY ( `id` ) )
Du hast deinem Chef ein NOT NULL mitgegeben und beim Update soll er hier gerade NULL einsetzen, das per Definition vorher ausgeschlossen ist.
Ich hoffe das hilft!
Mit freundlichem Gruß aus Iserlohn,
SebastianDirect Websolutions - Ihre IT-Agentur aus dem Märkischen Kreis (Balve, Iserlohn, Menden). Wir bieten Ihnen Webdesign, Hosting und Programmierung.
-
24.02.11 21:45 #3
- Registriert seit
- Jun 2009
- Beiträge
- 26
Moin!
Danke für den Hinweis.
Hatte das aber kurz anch dem Posten selber gesehen und "SET NULL" durch "CASCADE" ersetzt. Geht genau so wenig
-
24.02.11 22:11 #4
Nabend,
der chef muss ja auch NULL sein dürfen, meine Variante habe ich lokal mal getestet und das funktioniert auch soweit.
Grüße,
SebastianDirect Websolutions - Ihre IT-Agentur aus dem Märkischen Kreis (Balve, Iserlohn, Menden). Wir bieten Ihnen Webdesign, Hosting und Programmierung.
Ähnliche Themen
-
eigener Webcrawler
Von maxikey im Forum PHPAntworten: 0Letzter Beitrag: 27.06.08, 22:10 -
Eigener Datentyp ?
Von Railer im Forum .NET ArchivAntworten: 6Letzter Beitrag: 22.10.04, 16:56 -
eigener uBB Tag
Von js-mueller im Forum PHPAntworten: 0Letzter Beitrag: 24.08.03, 17:10 -
Eigener Errorhandler
Von Wolfsbein im Forum PHPAntworten: 3Letzter Beitrag: 30.05.03, 16:17 -
Eigener Newsletter
Von mr_ed im Forum Internet, DSL & FlatrateAntworten: 11Letzter Beitrag: 08.02.02, 16:35





Zitieren
Login





