phpMyAdmin
 sql >> Datenbank >  >> Database Tools >> phpMyAdmin

MySQL-Workbench und phpMyadmin

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}