sql Fehler

Hallo. Habe ein Problem.
Wenn ich die SQL über phpmyAdmin hochlade, kommt dieser Fehler.

Code:
SQL-Befehl:

CREATE TABLE bb1_acpmenuitemgroups(
itemgroupid smallint( 5 ) unsigned NOT NULL AUTO_INCREMENT ,
title varchar( 255 ) NOT NULL ,
condition text NOT NULL ,
conditiontype enum( 'OR', 'AND' ) NOT NULL DEFAULT 'OR',
showorder smallint( 5 ) unsigned NOT NULL DEFAULT '0',
acpmode tinyint( 3 ) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY ( itemgroupid )
);

MySQL meldet: Dokumentation
#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 'condition text NOT NULL,
    conditiontype enum('OR','AND') NOT NULL DEFAULT 'OR',' at line 4

Da ich schon oft ein Backup gemacht habe, kann ich nicht sagen je einen Felher gehabt zu haben. Daher verwundert mich das. Also ich schließe daraus, das die Tabelle "bb1_acpmenuitemgroups" nicht erstellt werden kann. Aber warum. Evtl. könnt ihr mir ja helfen.

Die SQL ist hier erreichbar: LINK

Hinweis: Ich habe eine neue version auf den server gepielt.
von:
o Apache 2.0.54
o PHP 4.3.10
o Perl 5.8.4
o mySQL 4.1

auf:
o Apache 2.2.3
o PHP 5.2.0-8+etch1
o Perl 5.8.8
o mySQL 5.0.32
 
Es könnte sein, dass deine SQL Version Probleme mit dem setzen eines DEFAULT-Wertes hat.

Auf jeden Fall, wenn du noch Fremdschlüssel mit ON CASCADE SET DEFAULT hast, dann gibt es auch Probleme.

Wie du das beheben kannst, kann ich dir aber leider auch nciht sagen :rolleyes:
 
also ich habs jetzt mal getestet, mein SQL-Server (5.0.24) frisst dein befehl auch net...

ich bab dann mal bissel dran rumgebastelt, und folgenden "gültigen" sql-Befehl daraus gemacht:

Code:
CREATE TABLE `bla` (
`itemgroupid` SMALLINT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`title` VARCHAR( 255 ) NOT NULL ,
`condition` TEXT NOT NULL ,
`conditiontype` ENUM( 'OR', 'AND' ) NOT NULL DEFAULT 'OR',
`showorder` SMALLINT( 5 ) UNSIGNED NOT NULL DEFAULT '0',
`acpmode` TINYINT( 3 ) UNSIGNED NOT NULL DEFAULT '0'
)

Problem sind die tabellennamen "condition" und "conditiontype"...
das sind wohl reservierte sql-befehle, setz die tabellennamen einfach in `` dann funktionierts ;)

kann man für dein backup ja in einem kleinen script realisieren...
 
vielen dank erst mal für die schnelle antwort. habe es gleich ausprobiert, und siehe da es funktionert. vielen dank für die mühe an keksinat0r
 
Zurück
Oben