MySQL Dump nicht einspielbar

#1
Hallo,

ich habe mittels mysqldump eine Datenbank auf Mysql Version 4.x gesichert und dann versucht bei einem neuen Server Mysql 5.x einzuspielen.

Leider bekomme ich immer folgenden Error beim Einspielen

Code:
ERROR 1064 (42000) at line 56: 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,
  conditiontype enum('OR','AND') NOT NULL default 'OR',
  showor' at line 4
An der betreffenden Stelle in der .sql-Datei steht folgendes

Code:
DROP TABLE IF EXISTS bb1_acpmenuitemgroups;
CREATE TABLE bb1_acpmenuitemgroups (
  itemgroupid smallint(5) unsigned NOT NULL auto_increment,
  title varchar(255) NOT NULL default '',
  condition text,
  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)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Kann mir jemand sagen warum er da immer mit dem oben genannten Fehler abbricht?
 

Till

Administrator
#2
Ich vermute mal, dass mysql5 irgend ein Problem damit hat dass Schlüsselwörter im enum verwendet werden bzw. dass sie nicht richtig escaped sind. Versuch mal folgendes:

Ändere die Zeile:

conditiontype enum('OR','AND') NOT NULL default 'OR',

in:

conditiontype varchar(255) NOT NULL default '',

und spiel den Dump ein. Danach öffne die DB in phpmyadmin und versuch den Spaltentüp wieder auf enum 'OR','AND' mit Default 'OR' zu setzen.
 
#3
Funktioniert leider auch nicht, jetzt kommt folgende Fehlermeldung nachdem ich die Zeile abgeändert habe

Code:
ERROR 1064 (42000) at line 51: 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,
  conditiontype varchar(255) NOT NULL default '',
  showorder sm' at line 4
 
#4
Habe auch versucht condition und conditiontype in ' ' zu setzen, also 'condition' und 'conditiontype', weil ich irgendwo gelesen hab, dass das reservierte Wörter sind in Mysql 5, aber kommt trotzdem noch dieselbe Fehlermeldung.

Noch andere Ideen? :(
 
#6
So sieht das mit Backticks aus, geht aber immer noch nicht.

Code:
DROP TABLE IF EXISTS bb1_acpmenuitemgroups;
CREATE TABLE bb1_acpmenuitemgroups (
  itemgroupid smallint(5) unsigned NOT NULL auto_increment,
  title varchar(255) NOT NULL default '',
  'condition' text,
  '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)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Oder wo meintest du fehlen die Backticks?
 

Till

Administrator
#7
Ich glaube das sind keine Backticks die Du da verwendet hast sondern einfache Anführungszeichen

Backtick: `
Einfaches Anführungszeichen: '
 

Werbung

Top