一尘不染

MySQL错误1064语法,但一切似乎都很好

mysql

我正在使用xampp控制面板,然后从那里开始apache和mysql的过程。然后我转到mysql工作台,服务器状态似乎正常,这是一些信息

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开始在mariaDb上使用mysql语法?

或者,如果我对问题的理解不正确,那么我应该怎么做,以便在使用xampp时不必再次面对此类问题?


阅读 300

收藏
2020-05-17

共1个答案

一尘不染

问题是单词VISIBLE,删除它,它将起作用。默认情况下,索引可见。

您的问题:“如果我删除VISIBLE,它就可以正常工作,那么mysql workbench为什么决定添加visible?”

我的回答:MariaDB尚未实现将索引标记为不可见的选项(afaik!)。

更新:

MariaDB的语法不同,请参阅以下参考:https :
//jira.mariadb.org/browse/MDEV-7317

2020-05-17