mySQL表创建失败 - 错误1064
问题描述:
我正在使用mysql管理GUI工具来创建表。下面是导致错误的查询语言:mySQL表创建失败 - 错误1064
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我得到下面执行此:
Error executing SQL commands to create table.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL,
`time_holding` VARCHAR NOT NULL,
`open` REAL NOT NULL,
`high` RE' at line 3 (error 1064)
任何想法,为什么我得到这个?我检查过我是否在使用任何保留字,但似乎并非如此。
您的帮助将不胜感激。
答
您遇到的第一个错误是由于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,
...
这样做的伎俩。谢谢。我正在使用管理员用户界面,我不知道我可以通过手动将VARCHAR更改为VARCHAR(50)来编辑数据类型...了解了一些新内容。再次感谢。 – codingknob 2011-03-22 16:47:10