Le problème ici est la différence de syntaxe entre les différentes versions du serveur MySQL. Il semble que MySQL Workbench 8.0.12 génère automatiquement CREATE UNIQUE INDEX
instruction pour le serveur MySQL version 8.0 .
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.7 . À 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' /* No option of VISIBLE / INVISIBLE */
index_type:
USING {BTREE | HASH}
Si vous ne cherchez pas à passer à la dernière version de MySQL ; vous pouvez désactiver cette fonctionnalité de génération automatique avec VISIBLE / INVISIBLE
indice :
Dans MySQL Workbench :
Aller à :
Édition > Préférences > Modélisation > MySQL.
Ensuite, définissez la "Version MySQL cible par défaut" sur 5.7
Vérifiez la capture d'écran ci-dessous :