我正在使用 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 执行此操作时,我得到以下信息:
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 个 varchar,则会出现)是最后一个括号之前的逗号。
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,
...
关于mySQL 表创建失败 - 错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5394046/