[英]MySQL syntax error in the CREATE TABLE statement
SQL查询:
CREATE TABLE `comment_threads` (
`comment_id` INT( 11 ) UNSIGNED NOT NULL DEFAULT '0',
`updated` TIMESTAMP NOT NULL ,
`timestamp` TIMESTAMP NOT NULL ,
) ENGINE = MYISAM ;
这是我尝试通过phpMyAdmin在HostGator上运行的旧文件。 我收到一条错误消息:
MySQL说:#1064-您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以在第5行的')ENGINE = MyISAM'附近使用正确的语法
更新:如果将语句更改为此,仍然会出现错误:
CREATE TABLE comment_threads (
comment_id INT( 11 ) UNSIGNED NOT NULL DEFAULT '0',
updated TIMESTAMP( 14 ) NOT NULL ,
timestamp TIMESTAMP NOT NULL
PRIMARY KEY ( comment_id ) )
ENGINE = MYISAM ;
我得到错误:
错误1064(42000):您的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以在第3行的'(14)NOT NULL,timestamp TIMESTAMP NOT NULL PRIMARY KEY(comment_id))ENGI'附近使用正确的语法
您的MySQL查询不正确。 它纠正到这个作品。
CREATE TABLE `comment_threads` (
`comment_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`updated` TIMESTAMP NOT NULL ,
`timestamp` TIMESTAMP NOT NULL
) ENGINE=MyISAM;
要在phpMyAdmin中运行此命令,可以使用内置表创建器 ,也可以在SQL查询窗口中输入更正后的SQL语句。
请注意,我在最后一个TIMESTAMP NOT NULL
行之后(紧接在结尾之前)
删除了逗号。
更新:您发布的第二条语句对此进行了更正:
CREATE TABLE `comment_threads` (
`comment_id` INT(11) UNSIGNED NOT NULL DEFAULT '0',
`updated` TIMESTAMP NOT NULL ,
`timestamp` TIMESTAMP NOT NULL,
PRIMARY KEY(`comment_id`)
) ENGINE=MyISAM;
这是您在第二个CREATE TABLE
语句中引入的问题:
TIMESTAMP( 14 )
应该只是TIMESTAMP
(根据文档 ) TIMESTAMP NOT NULL
行之后,您需要使用逗号。 现在必须使用逗号,因为与第一个示例不同,您将语句的两部分分开: TIMESTAMP NOT NULL
行和PRIMARY KEY
声明。 如果您想获得有关调试SQL语句的简单方法的更多信息,强烈建议您看一下我对这个问题的答案 (请参阅标题为“ 如何有条理地修复此类错误的更多信息 ”部分)。
确保在更改CREATE TABLE
语句或任何代码段时 ,以足够小的增量进行更改,以使您“一次最多中断一件事”。 对于第二个CREATE TABLE
语句,没有理由更改第一个TIMESTAMP
声明,并且这样做会破坏代码。 那条线在工作; 无需更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.