查询时出现MySQL语法错误,有什么不对

时间:2011-05-21 19:37:22

标签: mysql sql mysql-error-1064

我在这里忘记了...我是一个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(版本5.5.8)

引发的错误
  

SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在'usage(id BIGINT AUTO_INCREMENT,use_date datetime,ctn VARCHAR(255),destinatio'第1行附近使用正确的语法。失败的查询:“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分钟的人 - 有人请我摆脱我的痛苦!

1 个答案:

答案 0 :(得分:3)

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

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

此外,虽然它确实为您提供了很大一部分查询,但它是最重要的第一部分......它说near 'usage因此通常会出现问题。