phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

MySQL Workbench et phpMyadmin

Le problème ici est la différence de syntaxe entre les différentes versions du serveur MySQL. Il semble que votre version de MySQL Workbench soit 8.0 et ci-dessus. Le code qu'il génère automatiquement est applicable pour le serveur MySQL version 8.0 .

Vous devrez soit mettre à niveau votre serveur MySQL version à 8.0 et au-dessus. Ou, vous pouvez supprimer le VISIBLE mot-clé de tous les endroits (où Index est en cours de définition), comme ci-dessous :

INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC) VISIBLE, -- <-- remove VISIBLE

à

INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC),

Vous devrez également faire la même chose pour d'autres parties de vos requêtes.

Détails supplémentaires

Depuis la Documents MySQL Server 8.0 , la syntaxe pour CREATE INDEX est :

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}

Cependant, cette option de {VISIBLE | INVISIBLE} n'est pas disponible dans MySQL Server 5.5 (votre version de serveur ). À partir de Documents :

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}