sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

Banco de trabajo MySQL y phpMyadmin

El problema aquí es la diferencia en la sintaxis entre las diferentes versiones del servidor MySQL. Parece que su versión de MySQL Workbench es 8.0 y por encima. El código que se genera automáticamente es aplicable para el servidor MySQL versión 8.0 .

Deberá actualizar su servidor MySQL versión a 8.0 y superior. O bien, puede eliminar el VISIBLE palabra clave de todos los lugares (donde se define el Índice), como a continuación:

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

a

INDEX `fk_TeamStatistik_Team_idx` (`Team_id` ASC),

Deberá hacer lo mismo en otras partes de sus consultas también.

Detalles adicionales

De los MySQL Server 8.0 Docs , la sintaxis para CREATE INDEX es:

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}

Sin embargo, esta opción de {VISIBLE | INVISIBLE} no está disponible en MySQL Server 5.5 (la versión de su servidor ). Desde Documentos :

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}