TITAN3000 Geschrieben 25. April 2008 Teilen Geschrieben 25. April 2008 Das System: Alter Server: MySQL: 4.0.18-Max MySQL dump 9.10 Neuer Server: MySQL: 5.0.32 MySQL dump 10.11 ich hab eine Datenbank mit mysqldump ohne Fehler vom alten server exportiert: mysqldump DBx>DBx.sql -u root -p und will diese nun in den neuen Server importieren: mysql DBx<DBx.sql -u root -p es kommt zu folgendem Fehler ERROR 1064 (42000) at line 16570: You have an error in your SQL syntax; check the manual that corre sponds to your MySQL server version for the right syntax to use near 'loop tinyint(3) unsigned NOT NULL default '0', alternatepic blob NOT NULL, a' at line 13 ich hab mir DBx.sql angeschaut, hier ein Auszug ab Zeile 16570 CREATE TABLE tx_rlmpflashdetection_flashmovie ( uid int(11) unsigned NOT NULL auto_increment, pid int(11) unsigned NOT NULL default '0', tstamp int(11) unsigned NOT NULL default '0', crdate int(11) unsigned NOT NULL default '0', cruser_id int(11) unsigned NOT NULL default '0', description tinytext NOT NULL, requiresflashversion int(11) NOT NULL default '0', width int(11) NOT NULL default '0', height int(11) NOT NULL default '0', quality int(11) unsigned NOT NULL default '0', displaymenu tinyint(3) unsigned NOT NULL default '0', loop tinyint(3) unsigned NOT NULL default '0', alternatepic blob NOT NULL, alternatelink tinytext NOT NULL, flashmovie blob NOT NULL, additionalparams text NOT NULL, xmlfile blob NOT NULL, PRIMARY KEY (uid), KEY parent (pid) ) TYPE=MyISAM; Das Problem liegt also irgendwo hier displaymenu tinyint(3) unsigned NOT NULL default '0', loop tinyint(3) unsigned NOT NULL default '0', Woran liegt´s? wie soll ich den Eintrag editieren, damit er es akzeptiert? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
shinuma Geschrieben 25. April 2008 Teilen Geschrieben 25. April 2008 Beim importieren kann man in phpmyadmin einen kompatibilitätsmodus auswählen. Docu MySQL :: MySQL 5.0 Reference Manual :: 5.1.6 SQL Modes MYSQL40 Equivalent to NO_FIELD_OPTIONS, HIGH_NOT_PRECEDENCE. klappt es damit? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TITAN3000 Geschrieben 25. April 2008 Autor Teilen Geschrieben 25. April 2008 Funktioniert leider auch nicht. (ich habs mit phpmyadmin mit dem kompatibilitätsmodus MYSQL40 versucht) gleiche Fehlermeldung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 27. April 2008 Teilen Geschrieben 27. April 2008 LOOP ist soweit ich weiss in MySQL 5 ein reserviertes wort. versuchs mal testweise im script, diese und ähnliche feldnamen auszutauschen und importier dann nochmals. die verwendung von MyISAM und InnoDB wird auf linuxoiden OS' unterschiedlich gehandhabt und ab version 5 durch ENGINE zusätzlich zu TYPE unterstützt. auch das kannst du testen. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TITAN3000 Geschrieben 27. April 2008 Autor Teilen Geschrieben 27. April 2008 sowas hab ich schon vermutet, weil er die anderen zeilen alle perfekt annimmt (obwohl diese gleich aufgebaut sind). Dieses Problem tritt erst praktisch am Schluss der ganzen .sql- Datei auf. Ich brauche also nur die eine Zeile per Hand zu ändern. Es gibt doch einen Weg/Trick, wie man auch sql- Anweisungen als Spaltennamen verwenden kann. Ich konnte es allerdings bis jetzt nirgends finden wie man´s macht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 27. April 2008 Teilen Geschrieben 27. April 2008 man kann diese feldnamen in (einfache) hochkommas setzen. schöner ist es allerdings, wenn auch durch versionssprünge nicht immer realistisch und praktikabel, solche probleme gleich durch umbenennung zu umgehen. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TITAN3000 Geschrieben 27. April 2008 Autor Teilen Geschrieben 27. April 2008 ich habs versucht, da kommt trotzdem immer der gleiche fehler... folgende Möglichkeiten bin ich durchgegangen: "loop" tinyint(3) unsigned NOT NULL default '0', 'loop' tinyint(3) unsigned NOT NULL default '0', ich hab loop mal testweise durch einen anderen Namen ersetzt: lilula tinyint(3) unsigned NOT NULL default '0', und es klappte prima. Allerdings ist das natürlich nur zu testzwecken... die Anwendung braucht ja den originalen Spaltennamen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TITAN3000 Geschrieben 28. April 2008 Autor Teilen Geschrieben 28. April 2008 Da es in dem über 16 000 Zeilen langen .sql Export nur diesen einen Fehler gab, hab ich den Spaltennamen vor dem Importieren einfach umbenannt. Nach dem Import konnte ich den Namen wieder ohne Probleme (was mich etwas verwundert hat) in phpMyAdmin zurückstellen. Falls ich noch eine andere Lösung finden sollte, so werde ich diese hier reinschreiben. Vielen dank, vor allem Amstelchen :uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ratzinger Geschrieben 30. April 2008 Teilen Geschrieben 30. April 2008 schon mal versucht den Spaltennamen in Eckige KLammern zu stellen? also [Loop] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.dimitri Geschrieben 30. April 2008 Teilen Geschrieben 30. April 2008 In mysql werden Spalten, die mit sclüsselwörtern identisch sind meines Wissends nach in Backticks gestellt: Also `loop` Besser ist es natürlich erst gar keine Schlüsselwörter als Spaltenname zu verwenden. Mach auch das Schreiben von SQL viel einfacher. Dim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.