MySQL工作台:查询中出错(1064):语法错误靠近';可见';在1号线

MySQL工作台:查询中出错(1064):语法错误靠近';可见';在1号线,mysql,mysql-workbench,Mysql,Mysql Workbench,你知道为什么下面的可见会引起问题吗 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 NU

你知道为什么下面的
可见
会引起问题吗

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;
错误:

设置
code
ASC)上创建唯一索引
name\u UNIQUE
,可见 查询错误(1064):第1行“可见”附近的语法错误

设置
uuid
ASC)上创建唯一索引
uuid\u UNIQUE
可见 查询错误(1064):第1行“可见”附近的语法错误

如果我删除可见的,没有错误,但是MySQL Workbench 8.0.12自动生成。如何阻止MySQL Workbench这样做

我的Ubuntu 18.04中的MySQL信息:

MySQL版本:5.7.23-0ubuntu0.18.04.1,通过PHP扩展名MySQLi


这里的问题是不同MySQL服务器版本的语法不同。似乎MySQL Workbench 8.0.12正在为MySQL服务器8.0版自动生成
CREATE UNIQUE 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服务器5.7中不可用。发件人:


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

在MySQL工作台中:

转到:

编辑>首选项>建模>MySQL

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

查看下面的屏幕截图:

在工作台中: 模型>模型选项…>MySQL
=>取消选中“使用全局设置中的默认值,将其替换为5.7或6.3版本。我用了6.3。关于模型>模型选项..>MySql>6.3

谢谢。有什么办法可以升级到MySQL服务器版本8.0吗?@laukok您可以按照此链接中给出的步骤进行操作:@MadhurBhaiya
VISIBLE
在将架构从一台5.7服务器传输到另一台服务器时仍然生成,即使设置了默认的目标MySQL版本5.7。这似乎是Manjaro Linux中MySQL Workbench 8.0.19-2的一个bug。@kkzxak47请按照此处的说明报告一个bug:我与MariaDB 10.3.27和MySQL Workbench 8.0.22有相同的问题。在MySQL Workbench中将目标MySQL版本设置为5.7就成功了。非常感谢。
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}