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, 
    ... 
+0

这样做的伎俩。谢谢。我正在使用管理员用户界面,我不知道我可以通过手动将VARCHAR更改为VARCHAR(50)来编辑数据类型...了解了一些新内容。再次感谢。 – codingknob 2011-03-22 16:47:10