Masalahnya di sini adalah perbedaan sintaks di berbagai versi server MySQL. Tampaknya MySQL Workbench 8.0.12 adalah pembuatan otomatis CREATE UNIQUE INDEX
pernyataan untuk server MySQL versi 8.0 .
Dari MySQL Server 8.0 Documents
, sintaks untuk CREATE INDEX
adalah:
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}
Namun, opsi {VISIBLE | INVISIBLE}
tidak tersedia di MySQL Server 5.7 . Dari Dokumen
:
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}
Jika Anda tidak ingin meningkatkan versi MySQL ke versi terbaru; Anda dapat menonaktifkan fitur pembuatan otomatis ini dengan VISIBLE / INVISIBLE
indeks:
Di MySQL Workbench:
Pergi ke:
Edit> Preferensi> Pemodelan> MySQL.
Kemudian, atur "Default Target MySQL Version" ke 5.7
Periksa tangkapan layar di bawah ini: