El problema aquí es la diferencia en la sintaxis entre las diferentes versiones del servidor MySQL. Parece que su versión de MySQL Workbench es 8.0 y por encima. El código que se genera automáticamente es aplicable para el servidor MySQL versión 8.0 .
Deberá actualizar su servidor MySQL versión a 8.0 y superior. O bien, puede eliminar el VISIBLE
palabra clave de todos los lugares (donde se define el Índice), como a continuación:
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC) VISIBLE, -- <-- remove VISIBLE
a
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC),
Deberá hacer lo mismo en otras partes de sus consultas también.
Detalles adicionales
De los MySQL Server 8.0 Docs
, la sintaxis para CREATE INDEX
es:
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}
Sin embargo, esta opción de {VISIBLE | INVISIBLE}
no está disponible en MySQL Server 5.5 (la versión de su servidor
). Desde Documentos
:
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}