Ho un semplice file .xlsx che ho compilato manualmente e che assomiglia a questo:
Quando apro questo file in TextEdit non viene visualizzato nulla e (quindi) questo file non può essere importato su MySQLServer su PhpMyAdmin
.
Ho salvato lo stesso file di .csv. Quando apro questo file in TextEdit, questo è quello che ottengo:
id, questions, keywords, answer
1,here1,here2,here3
e (quindi) il .csv non può essere importato direttamente nel MySQL Server in PhpMyAdmin
ma ottengo il seguente errore:
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
Se aggiungo semplicemente doppie virgolette al file .csv su Textedit scrivendolo nel modo seguente:
id, questions, keywords, answer
"1","here1","here2","here3"
quindi la tabella viene correttamente importata nel database.
Perché non posso semplicemente annotare alcune cose nel mio file Excel, salvarlo come .xlsx o come .csv e avere direttamente il modulo giusto su TextEdit in modo che questo possa essere importato con successo sul MySQLServer?
La finestra con le opzioni quando provo a importare la tabella nel database è simile alla seguente:
Ho già importato molti file .odt (Libre Office) come questo nel database, ma sembra che Libre Office si prendesse cura di queste cose automaticamente, mentre Excel no.
id
colonna è stata salvata come int
tipo nel database quando ho importato il file .odt mentre la id
colonna è stata salvata come varchar
tipo nel database quando ho importato il file .csv formato in Excel.
"A symbol name was expected! A reserved keyword can not be used as a column name without backquotes."
perché uso id
come nome della prima colonna. Se cambio questo, allora tutto funziona bene. Tuttavia, non ho ancora avuto problemi ad importare tutte le tabelle che volevo che ha questo nome di colonna. Pertanto, non ho idea di cosa stia realmente accadendo qui ... :(