执行一个查询时出现错误语法

时间:2018-11-11 10:59:48

标签: mysql sql create-table

我需要创建表,然后执行以下操作:

CREATE TABLE "home" (
  "id" int(11) NOT NULL AUTO_INCREMENT,
  "address" varchar(200) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  PRIMARY KEY ("id")
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 COLLATE=latin1_bin;

执行此查询时,出现此错误:

Errore SQL [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 '"causali" (
  "id" int(11) NOT NULL AUTO_INCREMENT,
  "address" va' at line 1
  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 '"home" (
  "id" int(11) NOT NULL AUTO_INCREMENT,
  "adddress" va' at line 1

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

在启用ANSI_QUOTES模式之前,MySQL不喜欢在表/列/别名上使用双引号。

  

将“”作为标识符引号字符(如`引号字符)   而不是字符串引号字符。您仍然可以使用反引号   启用此模式的标识符。启用ANSI_QUOTES后,您   不能使用双引号引起来的文字字符串,因为   它们被解释为标识符。

此模式默认为禁用。现在,您可以在它们之间使用反引号,也可以不使用双引号(除非它是Reserved keyword,否则您将不得不在其周围使用反引号)。

CREATE TABLE home (
  id int(11) NOT NULL AUTO_INCREMENT,
  address varchar(200) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 COLLATE=latin1_bin;