Ich habe mit Excel eine einfache CSV-Datei erstellt, die so aussieht:
Dieselbe CSV-Datei habe ich auch mit Libre Office erstellt.
Beide .csv-Dateien sehen bei TextEdit absolut gleich aus:
id, questions
1, Hello World
Wenn ich jedoch versuche, sie unter PhpMyAdmin in die MySQL-Datenbank zu importieren, passiert etwas Überraschendes. Die letztere Datei wird ordnungsgemäß in die Datenbank importiert. Aber wenn ich versuche, die vorherige Datei zu importieren, erhalte ich 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 es richtig verstehe, tritt dieser Fehler auf, weil der Name der ersten Spalte in der CSV-Datei id
ein reserviertes Wort für die Datenbank ist. Trotzdem tritt dieser Fehler bei der in Libre Office erstellten CSV-Datei überhaupt nicht auf.
Warum passiert dies?
microsoft-excel
mysql
csv
libreoffice
Poete Maudit
quelle
quelle
Antworten:
Die Idee,
@Máté Juhász
den Hex-Editor zu betrachten, war ziemlich gut.Die CSV-Datei aus Excel zeigt den folgenden Inhalt im Hex-Editor an:
Die CSV-Datei von Libre Office zeigt Folgendes an:
Natürlich kann ich Libre Office für diese Aufgabe verwenden, wie ich es bisher immer getan habe. Ich wollte einfach zwei nützliche Funktionen in Excel nutzen.
Schließlich habe ich jedoch herausgefunden, dass ich diesen "Fehler" in der standardmäßigen CSV-Codierung von Excel erhalte, was
CSV UTF-8 (Comma delimited) (.csv)
aber nicht der Fall ist, wenn ich zurComma-Separated Values (.csv)
Codierung wechsle .Lassen Sie mich
@Pimp Juice IT
zum Schluss festhalten , dass ich damit einverstanden bin, dass in der Art und Weise, wie die CSV-Datei aus Excel codiert wurde, vergessen wurde, den Namen der ersten Spalte der Tabelle in der Datenbank festzulegen. Aber ich wollte eine Erklärung finden, warum dies auf Excel-Ebene geschieht.quelle