0

我正在使用 mysql 管理 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 作为这些列的类型,并将它们称为保存列,直到我可以运行查询以进行必要的转换。

当我尝试通过 GUI 执行此操作时,我得到以下信息:

执行 SQL 命令创建表时出错。
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 'NOT NULL、
`time_holding` VARCHAR NOT NULL、
`open` REAL NOT NULL、
`high` RE' 附近使用正确的语法(错误 1064)

知道为什么我会得到这个吗?我已经检查过我是否使用了任何保留字,但似乎并非如此。

您的帮助将不胜感激。

4

1 回答 1

2

您遇到的第一个错误是由于该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,
  ...
于 2011-03-22T16:09:36.010 回答