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

7 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
Run Code Online (Sandbox Code Playgroud)

然后每次当我尝试为我的虚拟架构添加外键时:

 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;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

 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
Run Code Online (Sandbox Code Playgroud)

那么,我该怎么做才能使xampp开始在mariaDb上使用mysql语法?

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

Dan*_* W. 12

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

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

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

更新:

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

  • MySQL Workbench适用于MySQL,MariaDB是另一回事,尽管它是嵌入式替代品,但可能有所不同。它不称为MariaDB工作台:-) (2认同)

Hus*_*soM 8

只需添加到将Maria DB与MySQL Workbench结合使用的用户,就无需安装mysql。您可以将“默认目标MySQL版本”从“首选项”更改为5.7或5.6,并且工作台将删除VISIBLE关键字。 MySQL Workbench首选项更改

这是来自mysql bugs https://bugs.mysql.com/bug.php?id=92269的链接


use*_*864 7

我正在使用 MySQL Workbench 并遇到同样的问题。更改首选项但没有用

解决方案:如果您导出正向工程模型,则需要在其他地方更改配置。

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

例子在这里