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

btxsgosb  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(307)

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

ne5o7dgx

ne5o7dgx1#

只是为了补充那些使用mariadb和mysql工作台的人,您不需要安装mysql。您只需将“default target mysql version”从preferences更改为5.7或5.6,visible关键字将被workbench删除。

以下是mysql bugs的链接https://bugs.mysql.com/bug.php?id=92269

eblbsuwk

eblbsuwk2#

我使用的是mysql工作台,有同样的问题。更改了首选项,但不起作用。
解决方案:如果导出模型,则需要在另一个地方更改配置。
转到模型>模型选项
在模型选项中,转到mysql
然后将“目标mysql版本”更改为5.6

oaxa6hgo

oaxa6hgo3#

问题是这个词 VISIBLE ,移除它,它就会工作。默认情况下,索引是可见的。
您的问题是:“如果我删除了visible,它就可以正常工作,那么为什么mysql workbench决定添加visible?”
我的答案是:mariadb(afaik!)中还没有实现将索引标记为不可见的选项。
更新:
mariadb的语法不同,请参阅以下参考:https://jira.mariadb.org/browse/mdev-7317

相关问题