当前位置: 首页 > 知识库问答 >
问题:

CREATE TABLE语句中的MySQL语法错误

齐博厚
2023-03-14

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”附近使用正确的语法

更新:如果我将语句更改为this,我仍然会收到错误:

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 Not NULL PRIMARY KEY(comment_id))ENGI”附近使用正确的语法

共有1个答案

壤驷喜
2023-03-14

您的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语句。

请注意,我删除了最后一行时间戳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语句中介绍的问题:

  1. TIMESTAMP(14)应该只是TIMESTAMP(按留档)
  2. 您需要在TIMESTAMP Not NULL行之后使用逗号。现在需要逗号,因为与第一个示例不同,您将语句的两个部分分开:TIMESTAMP Not NULL行和PRIMARY KEY声明。

如果您想了解有关调试SQL语句的简单方法的更多信息,我强烈建议您查看我对这个问题的回答(请参阅标题为关于如何有条不紊地修复此类错误的更多信息的部分)。

确保在更改CREATE TABLE语句或任何一段代码时,所做更改的增量足够小,以至于“一次最多只中断一件事情”在第二条CREATE TABLE语句中,没有理由更改第一条时间戳声明,这样做会破坏代码。那条线路正在运行;无需更改。

 类似资料:
  • 问题内容: 我的sql语句出了什么问题,它说问题在FULL JOIN附近,但是我很困惑: 请温柔些,因为我不是sql Fundi 问题答案: MySQL不提供完全连接,您可以使用 一对LEFT + RIGHT和UNION;或者 使用LEFT,RIGHT和INNER和UNION ALL的三元组 该查询也非常错误,因为您有GROUP BY,但是SELECT列不是聚合的。 将其正确转换为LEFT + R

  • 问题内容: 我正在尝试在Go中执行MERGE语句: 但是我得到了这个错误: 在MySQL中也是如此: 怎么了? 问题答案: 不支持,等效的是 插入…在重复的密钥更新上 尝试这个, 但请确保将其设置为或。

  • 目前遇到此语法错误,错误发布在代码下方。 上面的代码,无法找出if语句上的语法错误。错误消息将很快粘贴为注释

  • 我在尝试使用flyway和hibernate为PostgresSql创建表时遇到语法错误的问题。Trip类与其他类没有关系(还没有)。我已经成功地为其他两个类创建了购买和用户,但是这个只是给出了错误。 错误信息: [错误]测试运行:1,失败:0,错误:1,跳过:0,所用时间:3.003秒 SQL状态:42000错误代码:42000消息:SQL语句“CREATE TABLE TRIP(ID BIGI

  • 我们可以像这样使用if-field: 但是这里有一些问题,我不明白为什么。 > 如果我运行(count已定义),则会引发错误: 我们能不能先分配一个值? 当我运行count=1 if False else l.append(count 1)(注意:count=0,l=[])时,将引发一个错误: l的结果是。 使用相同的条件,如果使用if-else块,则不会出现错误。 你能解释一下区别吗?

  • 问题内容: 为什么Python在第9行的简单语句中给我一个语法错误? Python的版本是: 问题答案: 在Python 3中,print是一个函数,您需要像这样调用它。