MySQL ERROR 1064 in line,但不知道哪里出了问题?

MySQL ERROR 1064 in line, but don't know what is wrong?

我想在 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;  

但是,它给了我这个错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''virtual_domains' ('id' int(11) NOT NULL auto_increment, 'name' varchar(50) NOT ' at line 1

我在这里错过了什么?

感谢您的帮助!

罗布

删除 table 和列名称周围的单引号。请改用反引号。

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

除了使用 backticks (`symbol`),由于 none 您使用的标识符需要转义,您可以简单地完全删除转义:

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 ("symbol")。您需要设置 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