我正在使用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)
我知道为什么会这样吗?我已经检查过我是否使用了任何保留字,但似乎并非如此。
非常感谢您的帮助。
答案 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,
...