MySQL error 1064 синтаксис, но все вроде нормально - PullRequest
0 голосов
/ 17 мая 2018

Я использую панель управления xampp и оттуда я запускаю процесс для apache и mysql.Затем я перехожу к MySQL Workbench и состояние сервера, кажется, в порядке, вот некоторая информация

Host: Windows-PC
Socket: C:/xampp/mysql/mysql.sock
Port: 3306
Version 10.1.31-MariaDB mariadb.org binary distribution
Compiled For: Win32(32)
Configuratin File: unknown

Затем каждый раз, когда я пытаюсь добавить внешний ключ для моей фиктивной схемы, например:

 ALTER TABLE `puppies`.`animals` 
 ADD INDEX `Breed_idx` (`BreedID` ASC) VISIBLE;
 ;
 ALTER TABLE `puppies`.`animals` 
 ADD CONSTRAINT `Breed`
 FOREIGN KEY (`BreedID`)
 REFERENCES `puppies`.`breeds` (`Breed`)
 ON DELETE NO ACTION
 ON UPDATE NO ACTION;

Я получаю следующую ошибку

 ERROR 1064: You have an error in your SQL syntax; check the manual that 
 corresponds to your MariaDB server version for the right syntax to use near 
 '' at line 2
 SQL Statement:
 ALTER TABLE `puppies`.`animals` 
 ADD INDEX `Breed_idx` (`BreedID` ASC) VISIBLE

Так что я могу сделать, чтобы xampp начал использовать синтаксис mysql над mariaDb?

Или, если я не прав в моем понимании проблемы, тогдаЧто мне делать, чтобы при использовании xampp мне больше не приходилось сталкиваться с подобными проблемами?

Ответы [ 3 ]

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

Просто для добавления к тем, кто использует Maria DB с MySQL Workbench, вам не нужно устанавливать mysql.Вы можете просто изменить «Target MySQL Version по умолчанию» с Preferences на 5.7 или 5.6, и ключевое слово VISIBLE будет удалено рабочей средой.MySQL Workbench Preference Changes

Вот ссылка с ошибками mysql https://bugs.mysql.com/bug.php?id=92269

0 голосов
/ 24 января 2019

Я использую MySQL Workbench и у меня та же проблема. Изменение в настройках, но оно не работает .

Решение : Если вы экспортируете модель-форвард, вам нужно изменить конфигурацию в другом месте.

  1. Перейти к модели> Параметры модели
  2. В разделе параметров модели перейдите на MySQL
  3. Затем измените «Целевую версию MySQL» на 5.6

example here

0 голосов
/ 17 мая 2018

Проблема в слове VISIBLE, удалите его, и оно будет работать. Индекс виден по умолчанию.

Ваш вопрос: «Если я удаляю VISIBLE, он работает просто отлично, так почему же MySQL верстак решил добавить видимый?»

Мой ответ: возможность пометить индекс как невидимый еще не реализована в MariaDB (afaik!).

Обновление:

Синтаксис для MariaDB другой, см. Эту ссылку: https://jira.mariadb.org/browse/MDEV-7317

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...