MySQL错误1064语法,但一切正常

MySQL错误1064语法,但一切正常,mysql,xampp,mariadb,Mysql,Xampp,Mariadb,我使用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 然后每当我尝试为我的虚拟模式

我使用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时不必再面对此类问题呢?

问题是单词
可见
,删除它,它就会工作。 默认情况下,索引是可见的

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

我的答案是:在MariaDB(afaik!)中还没有实现将索引标记为不可见的选项

更新:


MariaDB的语法不同,请参阅以下参考:

为了添加到使用Maria DB with MySQL Workbench的用户中,您不需要安装MySQL。您只需将“默认目标MySQL版本”从首选项更改为5.7或5.6,workbench就会删除VISIBLE关键字。

这里是mysql bug的链接

我正在使用MySQL Workbench,但也有同样的问题更改首选项,但不起作用

解决方案:如果导出模型,则需要在其他位置更改配置

  • 转到模型>模型选项
  • 在模型选项中,转到MySQL
  • 然后将“目标MySQL版本”更改为5.6

  • 您有一个额外的;可见后;对于记录,语法与mysqlserver相同。您如何准确地发出上述sql语句?为什么这里有一个空行(第3行)?顺便说一句,MariaDB是一个使用MySQL工作台的MySQL fork.im,它为sql生成这些脚本行。我试着删除“;”但仍然出现同样的错误,你知道我可能做错了什么吗?有没有办法覆盖xampp for sql中的一些规则,这样我就可以正常工作?你是否为MySQL 8.0配置了Workbench,但你正在使用MariaDB运行?您找到了两者之间的差异之一。但是有没有办法让mysql workbench明白它不应该添加尚未实现的语法?mysql workbench是针对mysql的,MariaDB是另一回事,虽然它只是一个替代品,但它可能会有差异。它不叫MariaDB Workbench:-),但这正是我所想的,有没有办法让xampp为mysql db而不是MariaDB工作?我试图在互联网上找到一些东西,但没有一个解决方案是最新的。你可以尝试删除MariaDB并安装MySQL,请尝试以下链接:我正在查看该线程,基本上我在发布问题时已经实现了所有步骤。就像Mysql workbench被安装了一样,然后在那里我试图创建一个表,并得到了我发布的错误。那么有没有更具体的方法来解决这个问题呢?这应该是公认的答案。把它降到5.7为我们修正了它。使用Mariadb 10.3