ここでの問題は、異なるMySQLサーバーバージョン間での構文の違いです。 MySQL Workbench 8.0.12のようです CREATE UNIQUE INDEX
を自動生成しています MySQLサーバーのステートメントバージョン8.0 。
MySQLServer8.0ドキュメント
から 、CREATE INDEX
の構文 は:
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}
ただし、この{VISIBLE | INVISIBLE}
MySQL Server 5.7では使用できません 。 ドキュメント
から :
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}
MySQLの最新バージョンへのアップグレードを検討していない場合。 VISIBLE / INVISIBLE
を使用して、自動生成のこの機能を無効にすることができます インデックス:
MySQL Workbenchの場合:
移動:
編集>設定>モデリング>MySQL。
次に、「デフォルトのターゲットMySQLバージョン」を 5.7に設定します。
以下のスクリーンショットを確認してください: