Problemet här är skillnaden i syntax mellan olika MySQL-serverversioner. Det verkar som om din MySQL-arbetsbänksversion är 8.0 och ovan. Koden som den automatiskt genererar är tillämplig för MySQL-servern version 8.0 .
Du måste antingen uppgradera din MySQL server version till 8.0 och senare. Eller så kan du ta bort VISIBLE
nyckelord från alla platser (där Index definieras), som nedan:
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC) VISIBLE, -- <-- remove VISIBLE
till
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC),
Du kommer att behöva göra samma sak vid andra delar av dina frågor också.
Ytterligare information
Från MySQL Server 8.0 Docs
, syntaxen för CREATE INDEX
är:
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}
Men det här alternativet {VISIBLE | INVISIBLE}
är inte tillgänglig i MySQL Server 5.5 (din serverversion
). Från Dokument
:
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}