Das Problem hier ist der Unterschied in der Syntax zwischen verschiedenen MySQL-Serverversionen. Es scheint, dass Ihre MySQL-Workbench-Version 8.0 ist und darüber. Der automatisch generierte Code gilt für den MySQL-Server Version 8.0 .
Sie müssen entweder Ihren MySQL Server aktualisieren Version auf 8.0 und höher. Oder Sie können VISIBLE
entfernen Schlüsselwort von allen Stellen (wo Index definiert wird), wie unten:
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC) VISIBLE, -- <-- remove VISIBLE
zu
INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC),
Sie müssen dasselbe auch bei anderen Teilen Ihrer Abfragen tun.
Zusätzliche Details
Aus den MySQL Server 8.0 Docs
, die Syntax für CREATE INDEX
ist:
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}
Diese Option von {VISIBLE | INVISIBLE}
ist in MySQL Server 5.5 nicht verfügbar (Ihre Serverversion
). Aus Docs
:
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}