我执行一个查询时得到一个错误语法

vq8itlhq  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(289)

我需要创建表并执行以下操作:

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

有人能帮我吗?

mnemlml8

mnemlml81#

mysql不喜欢在表/列/别名上加双引号,除非我们启用 ANSI_QUOTES 模式。
将“视为标识符引号字符(如`引号字符),而不是字符串引号字符。启用此模式后,仍然可以使用反勾号引用标识符。在启用ansi\u引号的情况下,不能使用双引号来引用文字字符串,因为它们被解释为标识符。
默认情况下禁用此模式。现在,您可以在它们周围使用倒勾号,也可以不使用双引号(除非它是保留关键字,否则您必须在它周围使用倒勾号)。

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;

相关问题