行中出现MySQL错误1064,但不';我不知道怎么了?

行中出现MySQL错误1064,但不';我不知道怎么了?,mysql,sql,mysql-error-1064,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服务器版本相对应的手册

我想在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服务器版本相对应的手册 使用接近“虚拟_域”(“id”int(11)的语法不为NULL 自动递增,第1行的“name”varchar(50)NOT

我在这里错过了什么

谢谢你的帮助


Rob

删除表名和列名周围的单引号。改用反勾号

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

除了使用反勾号(`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;  

可选的是,当您需要逃避符号时,不要使用回退,而是考虑使用(“符号”)。您需要设置<代码> SqLyMydio= ANSILIGODS<<代码>:

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之间的可移植性


去掉表名和列名的单引号,这在mysql中是无效的。mysql不是用反引号代替单引号吗?