MySQL ERROR 1064排队,但不知道出了什么问题?

时间:2015-06-12 09:38:30

标签: mysql sql mysql-error-1064

我想在MySQL中执行以下行:

CREATE TABLE 'virtual_domains' (
    'id' int(11) NOT NULL auto_increment,
    'name' varchar(50) NOT NULL,
     PRIMARY KEY ('id'))
ENGINE=InnoDB DEFAULT CHARSET=utf8;  

然而,它给了我这个错误:

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   要在' virtual_domains'附近使用的语法(' id' int(11)NOT NULL   auto_increment,' name' varchar(50)NOT'在第1行

我在这里缺少什么?

感谢您的帮助!

罗布

2 个答案:

答案 0 :(得分:2)

删除表名和列名周围的单引号。反而使用反引号。

android.graphics.Bitmap cannot be cast to byte[]

答案 1 :(得分:0)

除了使用backticks(`symbol`)之外,由于您使用的标识符都不需要转义,因此您可以完全删除转义:

CREATE TABLE virtual_domains (
    id int(11) NOT NULL auto_increment,
    name varchar(50) NOT NULL,
     PRIMARY KEY (id))
ENGINE=InnoDB DEFAULT CHARSET=utf8;  

或者,当您确实需要转义符号而不是使用反引号时,请考虑使用ANSI compliant quotes(“符号”)。您需要设置SQL_MODE=ANSI_QUOTES

SET SQL_MODE=ANSI_QUOTES;

CREATE TABLE "virtual_domains" (
    "id" int(11) NOT NULL auto_increment,
    "name" varchar(50) NOT NULL,
     PRIMARY KEY ("id"))
ENGINE=InnoDB DEFAULT CHARSET=utf8;  

这样做的好处是提高了各种RDBMS之间的可移植性。

SqlFiddle here