为什么MySQL工作台为全文索引创建不正确的语法?

为什么MySQL工作台为全文索引创建不正确的语法?,mysql,Mysql,我正在使用MySQL workbench创建index,得到的create语句是: CREATE TABLE IF NOT EXISTS `test`.`location` ( `location_id` INT UNSIGNED NOT NULL, `name` VARCHAR(255) NOT NULL, PRIMARY KEY (`location_id`), FULLTEXT INDEX `name_fulltext` USING BTREE (`name` ASC))

我正在使用MySQL workbench创建
index
,得到的
create
语句是:

CREATE TABLE IF NOT EXISTS `test`.`location` (
  `location_id` INT UNSIGNED NOT NULL,
  `name` VARCHAR(255) NOT NULL,
  PRIMARY KEY (`location_id`),
  FULLTEXT INDEX `name_fulltext` USING BTREE (`name` ASC))
ENGINE = InnoDB;
但这给了我一个错误:

Executing SQL script in server
ERROR: Error 1064: 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 'USING BTREE (`name` ASC))
ENGINE = InnoDB' at line 8
SQL Code:
        -- -----------------------------------------------------
        -- Table `ofloy`.`location`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `ofloy`.`location` (
          `location_id` INT UNSIGNED NOT NULL,
          `name` VARCHAR(255) NOT NULL,
          PRIMARY KEY (`location_id`),
          FULLTEXT INDEX `name_fulltext` USING BTREE (`name` ASC))
        ENGINE = InnoDB
如果我将
全文
索引更改为:
全文(名称)
,则一切正常

但为什么workbench创建了错误的语法?我检查了模型正在使用的mysql版本(从模型>模型选项>mysql),这是我的服务器默认值
8.0.12


工作台版本:
6.3.10
使用BTREE删除索引类型
全文索引的语法类型不正确

BTREE是一种索引类型:

索引类型
使用{BTREE | HASH}

索引类型用于普通索引

{INDEX|KEY} [index_name] [index_type] (key_part,...)
      [index_option] ...
全文索引的正确语法如下所述:

{FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (key_part,...)
      [index_option] ...

运行以下查询:

CREATE TABLE IF NOT EXISTS `test`.`location` (
  `location_id` INT UNSIGNED NOT NULL,
  `name` VARCHAR(255) NOT NULL,
   PRIMARY KEY (`location_id`),
   FULLTEXT INDEX `name_fulltext`(`name`)
) ENGINE = InnoDB;

使用BTREE删除索引类型
,全文索引的语法类型不正确

BTREE是一种索引类型:

索引类型
使用{BTREE | HASH}

索引类型用于普通索引

{INDEX|KEY} [index_name] [index_type] (key_part,...)
      [index_option] ...
全文索引的正确语法如下所述:

{FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (key_part,...)
      [index_option] ...

运行以下查询:

CREATE TABLE IF NOT EXISTS `test`.`location` (
  `location_id` INT UNSIGNED NOT NULL,
  `name` VARCHAR(255) NOT NULL,
   PRIMARY KEY (`location_id`),
   FULLTEXT INDEX `name_fulltext`(`name`)
) ENGINE = InnoDB;

全文
索引不能定义顺序。卸下ASC,它将正常工作。实际上,这是workbench 6.3.10中的一个bug,它默认设置了顺序。最新版本已经解决了这个问题,我还没有验证它,但是在@TheCoder上阅读了它。感谢您提供的信息,我没有意识到它,因此我被提到,但是现在我已经删除了
ASC
全文
索引无法定义顺序。卸下ASC,它将正常工作。实际上,这是workbench 6.3.10中的一个bug,它默认设置了顺序。最新版本已经解决了这个问题,我还没有验证它,但是在@TheCoder上阅读了它。谢谢你提供的信息,我没有意识到它,因此我被提到了,但是现在我已经删除了
ASC