Проблемът тук е разликата в синтаксиса между различните версии на MySQL сървъра. Изглежда, че вашата версия на MySQL Workbench е 8.0 и отгоре. Кодът, който автоматично генерира, е приложим за MySQL сървъра версия 8.0 .
Ще трябва или да надстроите своя MySQL сървър версия до 8.0 и по-нова. Или можете да премахнете VISIBLE
ключова дума от всички места (където се дефинира индекса), като по-долу:
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC) VISIBLE, -- <-- remove VISIBLE
до
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC),
Ще трябва да направите същото нещо и в други части на вашите заявки.
Допълнителни подробности
От Документите на 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.5 (вашата сървърна версия
). От Документи
:
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'
index_type:
USING {BTREE | HASH}