gpt4 book ai didi

MySQL 工作台 : Error in query (1064): Syntax error near 'VISIBLE' at line 1

转载 作者:可可西里 更新时间:2023-11-01 06:31:41 26 4
gpt4 key购买 nike

知道为什么下面的 VISIBLE 会导致问题吗?

CREATE TABLE IF NOT EXISTS `setting` (
`uuid` INT(10) NOT NULL,
`type` VARCHAR(255) NOT NULL,
`code` VARCHAR(255) NOT NULL COMMENT 'An unique name.',
`value` MEDIUMTEXT NULL DEFAULT NULL,
`comment` LONGTEXT NULL DEFAULT NULL,
`created_on` INT UNSIGNED NOT NULL,
`updated_on` INT UNSIGNED NOT NULL,
PRIMARY KEY (`uuid`))
ENGINE = MyISAM
DEFAULT CHARACTER SET = utf8;

CREATE UNIQUE INDEX `name_UNIQUE` ON `setting` (`code` ASC) VISIBLE;

CREATE UNIQUE INDEX `uuid_UNIQUE` ON `setting` (`uuid` ASC) VISIBLE;

错误:

CREATE UNIQUE INDEX name_UNIQUE ON setting (code ASC) VISIBLE Error in query (1064): Syntax error near 'VISIBLE' at line 1

CREATE UNIQUE INDEX uuid_UNIQUE ON setting (uuid ASC) VISIBLE Error in query (1064): Syntax error near 'VISIBLE' at line 1

如果我删除 VISIBLE 没有错误,但 MySQL Workbench 8.0.12 会自动生成它。我怎样才能阻止 MySQL Workbench 这样做?

我的 Ubuntu 18.04 中的 MySQL 信息:

MySQL version: 5.7.23-0ubuntu0.18.04.1 through PHP extension MySQLi

最佳答案

这里的问题是不同 MySQL 服务器版本之间的语法差异。似乎 MySQL Workbench 8.0.12 正在为 MySQL 服务器 8.0 版 自动生成 CREATE UNIQUE INDEX 语句。

来自MySQL Server 8.0 DocsCREATE INDEX 的语法是:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
[index_type]
ON tbl_name (key_part,...)
[index_option]
[algorithm_option | lock_option] ...

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_option:
KEY_BLOCK_SIZE [=] value
| index_type
| WITH PARSER parser_name
| COMMENT 'string'
| {VISIBLE | INVISIBLE} /* Notice the option of VISIBLE / INVISIBLE */

index_type:
USING {BTREE | HASH}

但是,{VISIBLE | 的这个选项INVISIBLE}MySQL Server 5.7 中不可用。来自 Docs :

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
[index_type]
ON tbl_name (key_part,...)
[index_option]
[algorithm_option | lock_option] ...

key_part:
col_name [(length)] [ASC | DESC]

index_option:
KEY_BLOCK_SIZE [=] value
| index_type
| WITH PARSER parser_name
| COMMENT 'string' /* No option of VISIBLE / INVISIBLE */

index_type:
USING {BTREE | HASH}

如果您不想升级到最新版本的 MySQL;您可以使用 VISIBLE/INVISIBLE 索引禁用此自动生成功能:

在 MySQL 工作台中:

前往:

Edit > Preferences > Modeling > MySQL.

然后,将“默认目标 MySQL 版本”设置为 5.7

检查下面的屏幕截图:

MySQL WorkBench Modeling

关于MySQL 工作台 : Error in query (1064): Syntax error near 'VISIBLE' at line 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52785125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com