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?
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
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.
Voici un lien depuis les bugs mysql https://bugs.mysql.com/bug.php?id=92269
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é!
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.