Hallo,
ich habe ein Problem mit dem Ausführen von SQL-Code bei der Installation meines Paketes. Hier mal ein Ausschnitt:
DROP TABLE IF EXISTS wcf1_league;
CREATE TABLE wcf1_league (
leagueID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
[...]
);
DROP TABLE IF EXISTS wcf1_league_season;
CREATE TABLE wcf1_league_season (
seasonID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
leagueID INT(10) NOT NULL,
FOREIGN KEY (leagueID) REFERENCES wcf1_league(leagueID) ON DELETE CASCADE,
title VARCHAR(255) NOT NULL,
description MEDIUMTEXT,
discardedScores INT(10),
[...]
);
Display More
Bei der Installation erhalte ich folgenden Fehler:
QuoteFatal error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'title varchar(255) NOT NULL,description mediumtext,discardedScores int(10),point' at line 2
Fliegen tut der also immer in der Zeile, in der der FOREIGN KEY gesetzt wird. Interessanterweise scheint dieser Fehler mehr oder weniger zufällig aufzutreten, da ich das Paket vorher bereits einmal installieren konnte und in der Zwischenzeit nichts am Code des Install-SQLs verändert habe.
Ich habe in einem anderen Thread hier schon von einem ähnlichen Problem gelesen, dort wurden auch FOREIGN KEYs verwendet, welche allerdings erst ausserhalb des Erstellens der Tabelle gesetzt wurden (wenn ich das richtig verstanden habe, und da bin ich mir nicht sicher, war das der Fehler). Ich schätze also dass ich bei meinem Code auch einen ähnlichen Fehler gemacht habe. Kann mir noch einmal jemand erklären welchen?