Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat Sintaks dengan 'KELIHATAN' dalam CIPTA Penyata INDEKS UNIK?

Mengapa Saya Mendapat Ralat Sintaks dengan 'KELIHATAN' dalam CIPTA Penyata INDEKS UNIK?

Susan Sarandon
Susan Sarandonasal
2024-11-19 01:32:02785semak imbas

Why Am I Getting a Syntax Error with

MySQL Workbench: Syntax Ralat dengan VISIBLE dalam CREATE UNIQUE INDEX Statement

Mesej ralat "Syntax error near 'VISIBLE' pada baris 1" berlaku apabila menggunakan MySQL Workbench penyata CREATE UNIQUE INDEX yang dijana secara automatik. Isu ini berpunca daripada perbezaan sintaks antara versi pelayan MySQL.

Punca:

MySQL Workbench 8.0.12 menjana secara automatik kenyataan CREATE UNIQUE INDEX dengan pilihan VISIBLE , yang serasi dengan pelayan MySQL versi 8.0. Walau bagaimanapun, jika anda menggunakan versi MySQL yang lebih awal (seperti 5.7), pilihan ini tidak dikenali, membawa kepada ralat sintaks.

Perbezaan Sintaks:

Dalam pelayan MySQL versi 8.0, sintaks untuk CREATE INDEX termasuk pilihan indeks VISIBLE:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}

Dalam pelayan MySQL versi 5.7, pilihan VISIBLE ini tidak tersedia:

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_name
    [index_type]
    ON tbl_name (key_part,...)
    [index_option]
    [algorithm_option | lock_option] ...

index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'

Penyelesaian:

Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:

  1. Lumpuhkan Pilihan KELIHATAN dalam MySQL Workbench: Dalam MySQL Workbench, pergi ke Edit > Pilihan > Pemodelan > MySQL dan tetapkan "Default Target MySQL Version" kepada 5.7. Ini akan menghalang MySQL Workbench daripada menjana auto pilihan VISIBLE.
  2. Naik taraf Pelayan MySQL: Jika anda ingin menggunakan pilihan VISIBLE, pertimbangkan untuk meningkatkan pelayan MySQL anda kepada versi 8.0 atau lebih baru.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Sintaks dengan 'KELIHATAN' dalam CIPTA Penyata INDEKS UNIK?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn