为什么MySQL工作台为全文索引创建不正确的语法?
我正在使用MySQL workbench创建为什么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))
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