知道为什么吗 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;
错误:
创建唯一索引 name_UNIQUE
在 setting
( code
asc)查询中的可见错误(1064):第1行“可见”附近的语法错误
创建唯一索引 uuid_UNIQUE
在 setting
( uuid
asc)查询中的可见错误(1064):第1行“可见”附近的语法错误
如果我删除没有错误 VISIBLE
但是mysql workbench 8.0.12会自动生成这个。我怎样才能阻止mysql workbench这么做呢?
我的ubuntu 18.04中的mysql信息:
mysql版本:5.7.23-0ubuntu0.18.04.1,通过php扩展mysqli
3条答案
按热度按时间r1zk6ea11#
在工作台中:模型>模型选项…>mysql=>取消选中“使用全局设置的默认值”
ql3eal8s2#
5.7或6.3的替代版本。我用了6.3。在模型>模型选项>mysql>6.3上
igsr9ssn3#
这里的问题是不同mysql服务器版本的语法不同。mysql workbench 8.0.12似乎是自动生成的
CREATE UNIQUE INDEX
mysql server 8.0版的语句。在mysql server 8.0文档中
CREATE INDEX
是:然而,这种选择
{VISIBLE | INVISIBLE}
在mysql server 5.7中不可用。来自文档:如果你不想升级到mysql的最新版本;您可以使用禁用自动生成的此功能
VISIBLE / INVISIBLE
索引:在mysql workbench中:
去:
编辑>首选项>建模>mysql。
然后,将“default target mysql version”设置为5.7
查看下面的屏幕截图: