Ich habe ein Problem mit einer einfachen Abfrage CREATE TABLE. Ich habe zwei Tabellen "Resort" (mit resortID und resortName) und "season" (mit resortID und resortName) in einer Beziehung von vielen zu. Ich versuche, die Verbindungstabelle resort_season mit einer der beiden folgenden Abfragen zu erstellen:MySQL-Fehler bei CREATE TABLE für Viele-zu-Viele-Beziehung
CREATE TABLE resort_season (
resortID MEDIUMINT UNSIGNED NOT NULL,
seasonID MEDIUMINT UNSIGNED NOT NULL,
FOREIGN KEY (resortID) REFERENCES resort (resortID),
FOREIGN KEY (seasonID) REFERENCES season (seasonID),
PRIMARY KEY (resortID, seasonID) NOT NULL
);
CREATE TABLE resort_season (
resortID MEDIUMINT UNSIGNED NOT NULL FOREIGN KEY REFERENCES resort (resortID),
seasonID MEDIUMINT UNSIGNED NOT NULL FOREIGN KEY REFERENCES season (seasonID),
PRIMARY KEY (resortID, seasonID) NOT NULL
);
Beide Abfragen geben Sie mir einen Fehler, der (in diesem Fall bei der zweiten Abfrage) lautet:.? "You have an error in your syntax; check manual....for right syntax to use near'FOREIGN KEY REFERENCES resort (resortID), seasonID MEDIUMINT UNSIGNED NOT NULL F' at line 2"
Was mache ich falsch das gibt mir Kopfschmerzen, weil ich kann nur nicht sehen, warum der Fehler.
Wenn ich einfach
CREATE TABLE resort_season (
resortID MEDIUMINT UNSIGNED NOT NULL,
seasonID MEDIUMINT UNSIGNED NOT NULL,
PRIMARY KEY (resortID, seasonID) NOT NULL
);
dann funktioniert es gut und die Tabelle wird erstellt. Ich bin mir jedoch nicht sicher, ob diese Tabelle gültig auf die Tabellen Resort und Saison verweisen wird.
Sind diese InnoDB-Tabellen? – davidethell
Ich habe das nicht ausdrücklich in den Abfragen angegeben. Wäre das ein Grund für diesen Fehler? – Justs