Ошибка 1064 в коде SQL, сгенерированном MySQL Workbench - PullRequest
0 голосов
/ 16 декабря 2018

У меня есть одна маленькая проблема с созданием моих первых таблиц в MySQL Workbench.Когда я создаю две таблицы и прохожу прогресс Forward Engineering, я получаю следующее сообщение:

Выполнение сценария SQL на сервере ОШИБКА: Ошибка 1064: в синтаксисе SQL имеется ошибка;обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с «INDEX fk_person_has_user_person_idx (person_ID ASC) VISIBLE, CONSTRAINT» в строке 8

Код SQL:

        -- -----------------------------------------------------
        -- Table `customers`.`person_has_user`
        -- -----------------------------------------------------
        CREATE TABLE IF NOT EXISTS `customers`.`person_has_user` (
          `person_ID` INT NOT NULL,
          `user_person_ID` INT NOT NULL,
          PRIMARY KEY (`person_ID`, `user_person_ID`),
          INDEX `fk_person_has_user_user1_idx` (`user_person_ID` ASC) VISIBLE,
          INDEX `fk_person_has_user_person_idx` (`person_ID` ASC) VISIBLE,
          CONSTRAINT `fk_person_has_user_person`
            FOREIGN KEY (`person_ID`)
            REFERENCES `customers`.`person` (`ID`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION,
          CONSTRAINT `fk_person_has_user_user1`
            FOREIGN KEY (`user_person_ID`)
            REFERENCES `customers`.`user` (`person_ID`)
            ON DELETE NO ACTION
            ON UPDATE NO ACTION)
        ENGINE = InnoDB

SQL script execution finished: statements: 7 succeeded, 1 failed

Fetching back view definitions in final form.
Nothing to fetch

Может кто-нибудь объяснить это?

1 Ответ

0 голосов
/ 16 декабря 2018

Эд Коттрелл прав.Это несоответствие версии между версией вашего сервера MySQL и настройками MySQL Workbench.

  1. Do SELECT VERSION();, чтобы ваш сервер сообщал вам свою версию.
  2. В Workbench выполните Edit./ Preferences / Modeling> MySQL и установите Target MySQL Version по умолчанию на версию вашего сервера.

Затем Workbench сгенерирует код, подходящий для сервера, который вы фактически используете.

Эта ошибка вполне вероятна для новых пользователей;Недавно загруженное программное обеспечение Workbench по умолчанию имеет значение MySQL 8, но многие серверы в мире не имеют версии 8 (пока).

...