mySQL表创建失败 - 错误1064

时间:2011-03-22 15:57:34

标签: mysql create-table sql-types

我正在使用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服务器版本对应的手册,以便在“NOT NULL”附近使用正确的语法     `time_holding` VARCHAR NOT NULL,
    `open` REAL NOT NULL,
    第3行的'high`RE'(错误1064)

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

非常感谢您的帮助。

1 个答案:

答案 0 :(得分: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,
  ...