Database/MySQL

[MySQL] Workbench 문법 에러 (Error Code: 1064. Syntax error near 'VISIBLE' 또는 'INVISIBLE')

Nirsa 2020. 2. 4. 11:35
반응형

 

일반적으로 Error Code: 1064. Syntax 에러가 발생하면 문법 문제 입니다. 하지만 "Error Code: 1064. Syntax error near 'VISIBLE' 또는 'INVISIBLE'" 에러가 발생할 때 MySQL Workbench를 서버 접속 용도로 사용하고 다른 서버의 MySQL에 접근한다면 MySQL의 버전을 확인해봐야 할 필요성이 있습니다.

 

MySQL Workbench의 버전과 MySQL 서버의 버전 차이로 인해 문법이 달라질 수 있습니다.

(ex. MySQL Workbench 버전은 8.0인데, MySQL 서버의 버전은 5.7인 경우)

 

아래는 MySQL 8.0 공식 홈페이지 메뉴얼의 CREATE INDEX문 내용중의 일부 입니다. 문제가 되는 부분은 에러 내용을 보앗을때와 같이 VISIBLE, INVISIBLE 옵션 입니다.

(MySQL 8.0 메뉴얼 : https://dev.mysql.com/doc/refman/8.0/en/create-index.html)

index_option:
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}  /* Notice the option of VISIBLE / INVISIBLE */

 

하지만 MySQL 5.7점대 등의 버전은 VISIBLE, INVISIBLE 옵션을 지원하지 않기 때문에 에러가 발생 합니다. 아래는 MySQL 5.7 공식 홈페이지 메뉴얼의 CREATE INDEX문 내용중의 일부 입니다. 보시는바와 같이 VISIBLE, INVISIBLE에 대한 옵션을 지원하지 않습니다.

(MySQL 5.7 메뉴얼 : https://dev.mysql.com/doc/refman/5.7/en/create-index.html)

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

쿼리문에서 VISIBLE, INVISIBLE 옵션을 지워주거나 MySQL Workbench에서 기본 버전을 5.7점대로 맞춰주거나, 무조건 이 옵션을 사용해야 한다면 MySQL 서버의 버전을 8.0으로 업데이트 해주어야 합니다.

MySQL Workbench에서 기본 버전을 맞춰줄때엔 Edit → Preferences → Modeling → MySQL 에서 Default Target MySQL Version을 변경해주면 됩니다. 기본값은 아래 사진과 같이 되어 있습니다.

 

반응형