Il problema qui è la differenza di sintassi tra le diverse versioni del server MySQL. Sembra che la tua versione del workbench di MySQL sia 8.0 e al di sopra. Il codice che sta generando automaticamente è applicabile per il server MySQL versione 8.0 .
Dovrai aggiornare il tuo server MySQL versione a 8.0 e successive. Oppure puoi rimuovere il VISIBLE
parola chiave da tutti i luoghi (dove viene definito l'indice), come di seguito:
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC) VISIBLE, -- <-- remove VISIBLE
a
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC),
Dovrai fare la stessa cosa anche in altre parti delle tue query.
Dettagli aggiuntivi
Dai Documenti di MySQL Server 8.0
, la sintassi per 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}
Tuttavia, questa opzione di {VISIBLE | INVISIBLE}
non è disponibile in MySQL Server 5.5 (la tua versione del server
). Da Documenti
:
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}