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 之间的可移植性。
我想在 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 之间的可移植性。