Errore durante l'importazione del file .xslx / .csv nel database MySQL


0

Ho un semplice file .xlsx che ho compilato manualmente e che assomiglia a questo: inserisci qui la descrizione dell'immagine

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 PhpMyAdminma 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:

inserisci qui la descrizione dell'immagine

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.


Sospetto che ciò abbia a che fare con il tipo di dati che il tuo database si aspetta. L'attributo "ID" è descritto come intero? E gli altri 3? Mi sembra che il tuo database si aspetti stringhe, quindi perché genera un errore quando ottiene altri tipi di dati. Nota Non sono un esperto e sto solo lanciando un'idea in aria, potrebbe essere sbagliato.
Kevin Anthony Oppegaard Rose,

Grazie per il tuo commento In realtà hai ragione. Se sostituisco 1 con here0, il file CSV viene correttamente importato nel database anche se non contiene virgolette doppie (ma vengono aggiunte automaticamente dal database). Ma sono abbastanza sicuro che con i file .odt di Libre Office contenessero automaticamente doppie virgolette su TextEdit, quindi il file poteva essere facilmente importato nel database anche se conteneva numeri nel foglio di calcolo.
Poete Maudit,

Inoltre, come posso vedere, per questo motivo, la idcolonna è stata salvata come inttipo nel database quando ho importato il file .odt mentre la idcolonna è stata salvata come varchartipo nel database quando ho importato il file .csv formato in Excel.
Poete Maudit,

Ma ora, per qualche motivo, comincio a capire che l'errore riguarda ciò che ho pubblicato sopra, "A symbol name was expected! A reserved keyword can not be used as a column name without backquotes."perché uso idcome 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 ... :(
Poete Maudit,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.