为什么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_UNIQUEON setting(codeASC)VISIBLE查询(1064)中的错误:第1行“ VISIBLE”附近的语法错误
CREATE UNIQUE INDEX uuid_UNIQUEON setting(uuidASC)VISIBLE查询(1064)中的错误:第1行“ VISIBLE”附近的语法错误
如果删除则没有错误,VISIBLE但是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是CREATE UNIQUE INDEXMySQL服务器版本8.0的自动生成语句。
在MySQL Server 8.0文档中,其语法为CREATE 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中不可用。从文档:
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 Workbench中:
去:
编辑>首选项>建模> MySQL。
然后,将“默认目标MySQL版本”设置为5.7。来源:stack overflow