web-dev-qa-db-fra.com

Erreur MySQL 1064 syntaxe mais tout semble bien

J'utilise le panneau de configuration de xampp et à partir de là, je lance le processus pour Apache et mysql. Ensuite, je vais à mysql workbench et le statut du serveur semble être ok, voici quelques informations

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

Puis à chaque fois que j'essaie d'ajouter la clé étrangère pour mon schéma factice, comme:

 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;

Je reçois l'erreur suivante 

 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

Alors, que puis-je faire pour que xampp commence à utiliser la syntaxe mysql sur mariaDb?

Ou si je me trompe dans ma compréhension du problème, alors que dois-je faire pour que je n’aie plus à faire face à ce genre de problèmes lors de l’utilisation de xampp?

3
user6551302

Le problème est le mot VISIBLE, supprimez-le et cela fonctionnera. Les index sont visibles par défaut.

Votre question: "Si je supprime VISIBLE, cela fonctionne parfaitement, alors pourquoi mysql workbench a-t-il décidé d’ajouter visible?"

Ma réponse: L'option de marquage d'index invisible n'est pas encore implémentée dans MariaDB (autant que je sache!).

Mettre à jour: 

La syntaxe pour MariaDB est différente, veuillez consulter cette référence: https://jira.mariadb.org/browse/MDEV-7317

4
DanFromGermany

Juste pour ajouter à ceux qui utilisent Maria DB avec MySQL Workbench, vous n'avez pas besoin d'installer mysql. Vous pouvez simplement changer «Version cible par défaut de MySQL» dans Préférences en 5.7 ou 5.6, et le mot clé VISIBLE sera supprimé par le plan de travail.  MySQL Workbench Preference Changes

Voici un lien depuis les bugs mysql https://bugs.mysql.com/bug.php?id=92269

2
HussoM

Dan tu es génial !!

avait ceci

INDEX `fk_quotes_users_idx` (`users_id` ASC) VISIBLE,
      CONSTRAINT `fk_quotes_users`

recevait l'erreur 1064

mettre ceci .. (supprimé VISIBLE)

INDEX `fk_quotes_users_idx` (`users_id` ASC),
      CONSTRAINT `fk_quotes_users`

et a très bien fonctionné!

0
jpizzle

J'utilise MySQL Workbench et j'ai le même problème. Changez dans les préférences mais cela n’a pas fonctionné .

Solution : Si vous exportez le modèle via une ingénierie avancée, vous devez modifier la configuration à un autre endroit.

  1. Aller dans Modèle> Options de modèle 
  2. Dans les options du modèle, accédez à MySQL
  3. Puis changez la "version de MySQL cible" en 5.6

example here

0
user2461864