Как исправить ошибку 1064 при попытке добавить внешний ключ - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь настроить базу данных для библиотеки, и после того, как я создал таблицу и пытаюсь создать внешние ключи, я получаю эту ошибку (1064), и я действительно не знаю, что делать.Я использую MySQL 8

Я искал, и я не мог найти ничего подобного.Все, что я нашел, было проблемой с зарезервированными словами, что-то, что я не думаю, является проблемой в этом случае.

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC) VISIBLE;
;
ALTER TABLE `project`.`book` 
ADD CONSTRAINT `pubName_fk`
  FOREIGN KEY (`pubName`)
  REFERENCES `project`.`publisher` (`pubName`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

Сообщение об ошибке:

Операция не выполнена: при применении произошла ошибкаSQL-скрипт для базы данных.Выполнение:

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC) VISIBLE;
;
ALTER TABLE `project`.`book` 
ADD CONSTRAINT `pubName_fk`
  FOREIGN KEY (`pubName`)
  REFERENCES `project`.`publisher` (`pubName`)
  ON DELETE NO ACTION
  ON UPDATE NO ACTION;

ОШИБКА 1064: в синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '' в строке 2 Оператор SQL:

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC) VISIBLE

1 Ответ

1 голос
/ 15 мая 2019

Если вы используете MariaDB или MySQL под 8.0, они не дополнили индекс VISIBLE или INVISIBLE, поэтому вам нужно изменить запрос:

ALTER TABLE `project`.`book` 
ADD INDEX `pubName_fk_idx` (`pubName` ASC)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...