Frage zu MySql und Foreign Keys
-
Hallo zusammen
Ich habe eine Frage zu MySql in Bezug auf die Foreign Key constraints und zwar habe ich zwei Tabellen, welche jeweils ein Foreign Key aufeinander haben. Nun habe ich aber das Problem, dass ich den Foreign key in Tabelle A nicht setzen kann, weils ja Tabelle B zu diesem Zeitpunkt noch nicht gibt. Wenn ich hingegen die Tabelle B zuerst deklariere, kann ich in dieser den Foreign Key auf Tabelle A nicht definieren, weil ja dann eben diese Tabelle A zu diesem Zeitpunkt noch nicht exisitert.Gibt es für dieses Problem eine bekannte Lösung?
Mfg Samuel
-
Wenn eine Fremdschlüsselspalte den NULL-Zustand annehmen kann, kannst du zuerst beide Datensätze ohne die Beziehung eintragen (den Wert des Fremdschlüssels auf NULL belassen) und danach den Wert nachtragen.
-
Naja, das Problem besteht ja schon darin, dass ich die Tabellen überhaupt nicht so definieren kann?
-
Wieso nicht? Was meinst du damit? Für die Inno-Storage engine scheint es zu gehen:
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
Wieso referenzieren sich zwei Tabellen gegenseitig? Ist das korrekt modelliert?
-
Gehe ich recht in der Annahme, das du im Create Table schon den Foreign Key auf die nicht-existente Tabelle setzen willst?
[pseudocode]
Create Table1...
Create Table2 foreign key -> Table1
Alter Table1 foreign key -> Table2
[/pseudocode]so gehts aber...
mfg
xXx
-
Ja ok, mit alter gehts natürlich. Danke für den Tipp!