Het probleem hier is het verschil in syntaxis tussen verschillende MySQL-serverversies. Het lijkt erop dat MySQL Workbench 8.0.12 genereert automatisch CREATE UNIQUE INDEX
statement voor de MySQL-server versie 8.0 .
Van de MySQL Server 8.0-documenten
, de syntaxis voor CREATE INDEX
is:
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}
Deze optie van {VISIBLE | INVISIBLE}
is niet beschikbaar in de MySQL Server 5.7 . Van Documenten
:
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}
Als u niet wilt upgraden naar de nieuwste versie van MySQL; je kunt deze functie van automatisch genereren uitschakelen met VISIBLE / INVISIBLE
index:
In MySQL Workbench:
Ga naar:
Bewerken> Voorkeuren> Modelleren> MySQL.
Stel vervolgens de "Standaard doel MySQL-versie" in op 5,7
Bekijk de onderstaande schermafbeelding: