行中出现MySQL错误1064,但不';我不知道怎么了?
我想在MySQL中执行以下命令:行中出现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服务器版本相对应的手册
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不是用反引号代替单引号吗?