Ошибка создания таблицы MySQL - ошибка 1064 - PullRequest
0 голосов
/ 22 марта 2011

Я использую инструмент mysql admin GUI для создания таблицы.Вот язык запросов, который приводит к ошибке:

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

Моя дата и время не соответствуют формату, который нравится mysql, поэтому я выбрал VARCHAR в качестве типа для этих столбцов и именовал их как удерживающие столбцы, пока яможет выполнять запросы для выполнения необходимых преобразований.

Когда я пытаюсь выполнить это через графический интерфейс, я получаю следующее:

Ошибка выполнения команд SQL для создания таблицы.
Выесть ошибка в вашем синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с 'NOT NULL,
`time_holding` VARCHAR NOT NULL,
` open` REAL NOT NULL,
`high` RE' встрока 3 (ошибка 1064)

Есть идеи, почему я получаю это?Я проверил, использую ли я какие-либо зарезервированные слова, но, похоже, это не так.

Ваша помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 22 марта 2011

Первая ошибка, которая у вас возникла, связана с тем, что VARCHAR полям нужна длина, подобная этой: VARCHAR(30).

Вторая ошибка (вы получите, если исправите 2 varchars) - это запятаяперед последней скобкой.

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;

Примечание: вы знаете, что MySQL имеет определенные типы для обработки даты и времени, не так ли?Таким образом, вы могли бы иметь:

CREATE TABLE `environment`.`moisture` (
  `city_id` INT,
  `date_holding` date,
  `time_holding` time,
  ...
...