La creazione di tabella mysql fallisce - Errore 1064
-
28-10-2019 - |
Domanda
Sto usando lo strumento MySQL Admin GUI per creare una tabella. Ecco il linguaggio delle query che si traduce in un errore:
CREATE TABLE `environment`.`moisture` (
`city_id` INT,
`date_holding` VARCHAR,
`time_holding` VARCHAR,
`open` REAL,
`high` REAL,
`low` REAL,
`close` REAL,
)
CHARACTER SET utf8;
La mia data e ora non sono del formato Mi piace MySQL, quindi ho selezionato Varchar come tipo per quelle colonne e mi sono riferito come colonne di tenuta fino a quando non posso eseguire query per fare le conversioni necessarie.
Quando provo a eseguirlo tramite la GUI, ottengo quanto segue:
Errore eseguendo comandi SQL per creare la tabella.
Hai un errore nella sintassi SQL; Controlla il manuale che corrisponde alla versione del server MySQL per la sintassi giusta da utilizzare vicino a 'non null,
`time_holding` varchar non null,
`Open` reale non null,
`high` re 'alla riga 3 (errore 1064)
Qualche idea sul perché sto ottenendo questo? Ho controllato per vedere se sto usando parole riservate, ma non sembra essere il caso.
Il tuo aiuto sarebbe molto apprezzato.
Soluzione
Il primo errore che hai è dovuto VARCHAR
I campi hanno bisogno di una lunghezza come questa: VARCHAR(30)
.
Il secondo errore (otterrai se si fissa i 2 varchar) è la virgola prima dell'ultima parentesi.
CREATE TABLE `environment`.`moisture` (
`city_id` INT,
`date_holding` VARCHAR(30), --or whatever length you want
`time_holding` VARCHAR(20), --same
`open` REAL,
`high` REAL,
`low` REAL,
`close` REAL --- no comma here
)
CHARACTER SET utf8;
Nota a margine: sai che MySQL ha tipi specifici per gestire le date e gli orari, vero? Quindi potresti avere:
CREATE TABLE `environment`.`moisture` (
`city_id` INT,
`date_holding` date,
`time_holding` time,
...