Fehler beim Importieren der .xslx / .csv-Datei in die MySQL-Datenbank

631
Poete Maudit

Ich habe eine einfache .xlsx-Datei, die ich manuell ausgefüllt habe und die so aussieht: Fehler beim Importieren der .xslx / .csv-Datei in die MySQL-Datenbank

Wenn ich diese Datei in TextEdit öffne, erscheint nichts und daher kann diese Datei nicht in den MySQLServer importiert werden PhpMyAdmin.

Ich habe die gleiche Datei als .csv gespeichert. Wenn ich diese Datei in TextEdit öffne, bekomme ich Folgendes:

id, questions, keywords, answer  1,here1,here2,here3 

und (daher) die .csv-Datei kann nicht direkt in den MySQLServer importiert werden. PhpMyAdminIch erhalte jedoch die folgende Fehlermeldung:

Error Static analysis:  5 errors were found during analysis.  A symbol name was expected! A reserved keyword can not be used as a column name without backquotes. (near "int" at position 46) At least one column definition was expected. (near "int" at position 46) Unexpected beginning of statement. (near "1" at position 50) Unexpected beginning of statement. (near "`question`" at position 54) Unrecognized statement type. (near "varchar" at position 65) SQL query:  CREATE TABLE IF NOT EXISTS `Sample`.`TABLE 3` ( int(1), `question` varchar(5), `keywords` varchar(5), `answer` varchar(5)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  MySQL said: Documentation  #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'int(1), `question` varchar(5), `keywords` varchar(5), `answer` varchar(5)) DEFAU' at line 1 

Wenn ich einfach in die .csv-Datei bei Textedit doppelte Anführungszeichen einfügt, schreibe ich sie folgendermaßen:

id, questions, keywords, answer  "1","here1","here2","here3" 

Dann wird die Tabelle ordnungsgemäß in die Datenbank importiert.

Warum kann ich einige Dinge nicht einfach in meine Excel-Datei schreiben, entweder als .xlsx oder als .csv speichern und direkt bei TextEdit das richtige Formular haben, damit dieses erfolgreich am MySQLServer importiert werden kann?

Das Fenster mit den Optionen, wenn ich versuche, die Tabelle in die Datenbank zu importieren, sieht folgendermaßen aus:

Fehler beim Importieren der .xslx / .csv-Datei in die MySQL-Datenbank

Ich habe bereits viele .odt-Dateien (Libre Office) wie diese in die Datenbank importiert, aber Libre Office scheint sich um diese Dinge automatisch gekümmert zu haben, Excel dagegen nicht.

0
Ich vermute, dass dies damit zusammenhängt, welchen Datentyp Ihre Datenbank erwartet. Wird das "ID" -Attribut als ganze Zahl beschrieben? Was ist mit den anderen 3? Es sieht für mich so aus, als würde Ihre Datenbank Strings erwarten, weshalb sie einen Fehler auslöst, wenn sie andere Datentypen erhält. Hinweis: Ich bin kein Experte und wirft nur eine Idee in die Luft. Es kann falsch sein. Kevin Anthony Oppegaard Rose vor 5 Jahren 0
Vielen Dank für Ihren Kommentar. Du hast tatsächlich recht. Wenn ich 1 durch here0 ersetze, wird die csv-Datei ordnungsgemäß in die Datenbank importiert, obwohl sie keine Anführungszeichen enthält (sie werden jedoch automatisch von der Datenbank hinzugefügt). Ich bin mir jedoch ziemlich sicher, dass .odt-Dateien mit Libre Office automatisch doppelte Anführungszeichen in TextEdit enthielten, sodass die Datei problemlos in die Datenbank importiert werden konnte, obwohl sie Zahlen in der Kalkulationstabelle enthielt. Poete Maudit vor 5 Jahren 0
Wie ich sehen kann, wurde aus diesem Grund die `id`-Spalte als` int`-Typ in der Datenbank gespeichert, als ich die .odt-Datei importierte, während die `id`-Spalte als` varchar`-Typ in der Datenbank gespeichert wird, wenn ich die in Excel erstellte CSV-Datei importiert. Poete Maudit vor 5 Jahren 0
Aber jetzt verstehe ich aus irgendeinem Grund zu verstehen, dass es sich bei dem Fehler um das handelt, was ich oben gepostet habe: "Ein Symbolname wurde erwartet! Ein reserviertes Schlüsselwort kann nicht als Spaltenname ohne Backquotes verwendet werden." `Das ist, weil ich 'id' verwende als Name der ersten Spalte. Wenn ich das ändere, funktionieren alle Dinge gut. Ich hatte jedoch noch kein Problem, so viele Tabellen zu importieren, wie ich wollte, die diesen Spaltennamen haben. Deshalb habe ich keine Ahnung, was hier wirklich passiert ... :( Poete Maudit vor 5 Jahren 0

0 Antworten auf die Frage