Проблема здесь заключается в разнице в синтаксисе между различными версиями сервера MySQL.Похоже, что MySQL Workbench 8.0.12 автоматически генерирует оператор CREATE UNIQUE INDEX
для сервера MySQL версия 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
index:
В MySQL Workbench:
Перейти к:
Редактировать> Предпочтения> Моделирование> MySQL.
Затем установите «Целевую версию MySQL по умолчанию» на 5.7
Проверьте скриншот ниже:
