我想在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行
我在这里缺少什么?
感谢您的帮助!
罗布
答案 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之间的可移植性。