【问题标题】:MySQL Syntax error on query, what's wrong查询时的MySQL语法错误,出了什么问题
【发布时间】:2011-08-30 08:26:58
【问题描述】:

我要疯了……我是一个 SQL 初学者……但我一辈子都看不出我的陈述有什么问题:

CREATE TABLE usage 
  (id BIGINT AUTO_INCREMENT
  , use_date datetime 
  , ctn VARCHAR(255)
  , destination VARCHAR(255)
  , cost_type BIGINT
  , cost BIGINT
  , up_data bigint
  , down_data bigint
  , INDEX cost_type_idx (cost_type)
  , PRIMARY KEY(id) ) ENGINE = INNODB;

这里是 MySQL (Version 5.5.8) 抛出的错误

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“用法(id BIGINT AUTO_INCREMENT,use_date datetime,ctn VARCHAR(255),destinatio”附近使用正确的语法。失败的查询:“CREATE TABLE 用法(id BIGINT AUTO_INCREMENT , use_date datetime, ctn VARCHAR(255), destination VARCHAR(255), cost_type BIGINT, cost BIGINT, up_data bigint, down_data bigint, INDEX cost_type_idx (cost_type), PRIMARY KEY(id)) ENGINE = INNODB"。失败的查询:CREATE TABLE用法(id BIGINT AUTO_INCREMENT,use_date datetime,ctn VARCHAR(255),destination VARCHAR(255),cost_type BIGINT,cost BIGINT,up_data bigint,down_data bigint,INDEX cost_type_idx (cost_type),PRIMARY KEY(id)) ENGINE = INNODB

上面写着near,然后给了我大约 30 个字符!

我尝试了不同的列名,以防我使用关键字。我尝试了不同的数据类型 - 仍然没有运气!

我敢肯定,对于 10 分钟没有把头发扯掉的人来说,为什么它不起作用是很明显的 - 有人请让我摆脱痛苦!

【问题讨论】:

  • 你试过一次吗???
  • 第一个运行良好 - 第二个失败 - 如果我单独运行它们
  • 我提到这一点是因为你真的只需要提供第二行。我会为你编辑它。 :)
  • @Fosco - 好的 - 明白了......谢谢:-)

标签: mysql sql mysql-error-1064


【解决方案1】:

出现该错误是因为USAGE 是mysql 中的保留字。

有关保留字列表,请参阅:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

此外,虽然它确实为您提供了大部分查询,但它是最重要的第一部分......它说 near 'usage 所以这通常是它遇到的问题。

【讨论】:

  • DAM DAM DAM ... 现在我觉得自己很愚蠢 .... 感谢您指出 - 我应该检查一下列表!感谢您的链接.....当它建议“附近”时,通常是建议的第一个词吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多