Vấn đề ở đây là sự khác biệt về cú pháp giữa các phiên bản máy chủ MySQL khác nhau. Có vẻ như MySQL Workbench 8.0.12 đang tự động tạo CREATE UNIQUE INDEX
tuyên bố cho máy chủ MySQL phiên bản 8.0 .
Từ Tài liệu MySQL Server 8.0
, cú pháp cho CREATE INDEX
là:
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}
Tuy nhiên, tùy chọn này của {VISIBLE | INVISIBLE}
không khả dụng trong MySQL Server 5.7 . Từ 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}
Nếu bạn không muốn nâng cấp lên phiên bản MySQL mới nhất; bạn có thể tắt tính năng tự động tạo này với VISIBLE / INVISIBLE
chỉ mục:
Trong MySQL Workbench:
Đi tới:
Chỉnh sửa> Tùy chọn> Mô hình hóa> MySQL.
Sau đó, đặt "Phiên bản MySQL mục tiêu mặc định" thành 5.7
Kiểm tra ảnh chụp màn hình bên dưới: