Question

J'utilise l'outil MySQL Admin GUI pour créer une table. Voici le langage de requête qui se traduit par une erreur:

CREATE TABLE `environment`.`moisture` (
  `city_id` INT,
  `date_holding` VARCHAR,
  `time_holding` VARCHAR,
  `open` REAL,
  `high` REAL,
  `low` REAL,
  `close` REAL,
)
CHARACTER SET utf8;

Ma date et mon heure ne sont pas du format que MySQL likes, j'ai donc sélectionné Varchar comme type pour ces colonnes et les qualifiés de colonnes de maintien jusqu'à ce que je puisse exécuter des requêtes pour effectuer les conversions nécessaires.

Lorsque j'essaie de l'exécuter via l'interface graphique, je reçois ce qui suit:

Erreur exécutant des commandes SQL pour créer une table.
Vous avez une erreur dans votre syntaxe SQL; Vérifiez le manuel qui correspond à votre version MySQL Server pour que la syntaxe de droite puisse utiliser près de «Not Null,
`Time_holding` varchar not null,
«Ouver» réel pas nul,
`` HIGH 'RE' à la ligne 3 (erreur 1064)

Une idée pourquoi je comprends cela? J'ai vérifié pour voir si j'utilise des mots réservés, mais cela ne semble pas être le cas.

Votre aide serait grandement appréciée.

Était-ce utile?

La solution

La première erreur que vous avez est due à cela VARCHAR Les champs ont besoin d'une longueur comme ceci: VARCHAR(30).

La deuxième erreur (vous obtiendrez si vous corrigez les 2 Varchars) est la virgule avant la dernière parenthèse.

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;

Note latérale: vous savez que MySQL a des types spécifiques pour gérer les dates et les heures, n'est-ce pas? Alors vous pourriez avoir:

CREATE TABLE `environment`.`moisture` (
  `city_id` INT,
  `date_holding` date,
  `time_holding` time,
  ...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top