sql >> データベース >  >> RDS >> Mysql

MySQL Workbench:クエリのエラー(1064):1行目の「VISIBLE」付近の構文エラー

    ここでの問題は、異なる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に設定します。

    以下のスクリーンショットを確認してください:



    1. PostgreSQL-JSONB配列の各オブジェクトにキーを追加します

    2. クエリを使用して既存のテーブルのSQL作成スクリプトを生成する

    3. PostgreSQLの台頭:2018年のPostgresの調査結果と2019年のトレンド

    4. WinHttp.WinHttpRequest.5.1 forTLS1.2を使用してSQLServerストアドプロシージャでオプション9を設定します