Fehler in SQL-Query

Thomas D

Erfahrenes Mitglied
Hallo!

Ich bekomme bei dem folgenden MySQL-Query diesen Fehler:

ERROR 1064 (42000): 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 'match (
matchid INT(6) AUTO_INCREMENT NOT NULL,
match VARCHAR(255) NOT NULL,
eve' at line 1

Code:
CREATE TABLE match (
	matchid INT(6) AUTO_INCREMENT NOT NULL,
	match VARCHAR(255) NOT NULL,
	eventid INT(5) NOT NULL,
	stipulationid INT(5) NULL,
	titelid INT(3) NULL,
	anmerkungen TEXT NULL,
	ergebnis INT(5) NOT NULL DEFAULT 0);

Nur irgendwie will mir nicht eingehen, was daran falsch sein könnte :confused:. Ich habe auch schon das Attribut 'match' umbenannt (eventuell Probleme bei gleichen Tabellen- und Spaltennamen?), doch auch das hat nichts gebracht ...

EDIT: Okay, bin soeben selbst draufgekommen. 'match' ist unter MySQL scheinbar ein Schlüsselwort und ich darf sowohl Tabelle als auch Spalte nicht so nennen. Warum es dazu keine passendere Fehlermeldung gibt, ist mir allerdings schleierhaft ...
 
Zuletzt bearbeitet:
Doch du darfst es auch als Tabellen bzw. Spaltennamen benutzen, du musst es nur für MySQL maskieren, damit er es als solches erkennt.

SQL:
CREATE TABLE match (
	`matchid` INT(6) AUTO_INCREMENT NOT NULL,
	`match` VARCHAR(255) NOT NULL,
	`eventid` INT(5) NOT NULL,
	`stipulationid` INT(5) NULL,
	`titelid` INT(3) NULL,
	`anmerkungen` TEXT NULL,
	`ergebnis` INT(5) NOT NULL DEFAULT 0);
 
Zuletzt bearbeitet:
Falsches Metazeichen.
Code:
CREATE TABLE match (
	`matchid` INT(6) AUTO_INCREMENT NOT NULL,
	`match` VARCHAR(255) NOT NULL,
	`eventid` INT(5) NOT NULL,
	`stipulationid` INT(5) NULL,
	`titelid` INT(3) NULL,
	`anmerkungen` TEXT NULL,
	`ergebnis` INT(5) NOT NULL DEFAULT 0);
 
Der Tabellenname müsste auch maskiert werden (gibt sonst einen Fehler) und dies t scheinbar mit den `-Hochkomma nicht. Aber wie gesagt, ist eh mittlerweile egal :) ...
 
Zurück