Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL Workbench:Błąd w zapytaniu (1064):Błąd składni w pobliżu „VISIBLE” w wierszu 1

Problemem jest tutaj różnica w składni w różnych wersjach serwera MySQL. Wygląda na to, że MySQL Workbench 8.0.12 automatycznie generuje CREATE UNIQUE INDEX oświadczenie dla serwera MySQL wersja 8.0 .

Z dokumentacji MySQL Server 8.0 , składnia CREATE INDEX jest:

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}

Jednak ta opcja {VISIBLE | INVISIBLE} nie jest dostępna w MySQL Server 5.7 . Z Dokumentów :

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}

Jeśli nie chcesz uaktualnić do najnowszej wersji MySQL; możesz wyłączyć tę funkcję automatycznego generowania za pomocą VISIBLE / INVISIBLE indeks:

W MySQL Workbench:

Przejdź do:

Edycja> Preferencje> Modelowanie> MySQL.

Następnie ustaw „Domyślna docelowa wersja MySQL” na 5.7

Sprawdź zrzut ekranu poniżej:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Niepoprawny plik klucza MySQL dla tabeli tmp podczas tworzenia wielu złączeń

  2. Połączenie MySQL nie działa:2002 Brak takiego pliku lub katalogu

  3. Czy połączenia SQL otwierane za pomocą PDO w PHP muszą być zamknięte?

  4. Jak znaleźć i zamienić tekst w bazie danych MySQL za pomocą SQL

  5. Jak wstawić tablicę do pojedynczej instrukcji MySQL Prepared z PHP i PDO