MySQL 错误 1064 语法,但一切似乎都很好
Posted
技术标签:
【中文标题】MySQL 错误 1064 语法,但一切似乎都很好【英文标题】:MySQL error 1064 syntax but everything seems fine 【发布时间】:2020-04-28 13:29:42 【问题描述】:我正在使用 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 时不必再次面对此类问题?
【问题讨论】:
你有一个额外的;可见后;作为记录,语法与 mysql 相同 上面的sql语句到底是怎么发出来的?为什么那里有一个空行(第 3 行)?顺便说一句,MariaDB 是 MySQL 的一个分支。 im 使用 mysql 工作台,它为 sql 生成那些脚本行。我尝试删除“;”但它仍然给出同样的错误,任何想法我可能做错了什么? 有没有办法覆盖 xampp for sql 中的一些规则,以便我可以正常工作? 您是否为 MySQL 8.0 配置了 Workbench,但您正在使用 MariaDB 运行?您遇到了两者之间的差异之一。 【参考方案1】:问题是VISIBLE
这个词,删除它就可以了。
索引默认可见。
您的问题:“如果我删除 VISIBLE 它工作得很好,那么为什么 mysql 工作台决定添加可见?”
我的回答:将索引标记为不可见的选项尚未在 MariaDB 中实现(afaik!)。
更新:
MariaDB 的语法不同,请参阅此参考:https://jira.mariadb.org/browse/MDEV-7317
【讨论】:
但是有没有办法让mysql工作台明白它不应该添加尚未实现的语法? MySQL Workbench 是针对 MySQL 的,MariaDB 是另外一回事,虽然是替代品,但可能会有差异。它不叫 MariaDB Workbench :-) 但这正是我的想法,有没有办法让 xampp 为 mysql db 而不是 mariaDb 工作?试图在互联网上找到一些东西,但似乎没有一个解决方案是最新的 您可以尝试删除 MariaDB 并安装 MySQL,请尝试以下链接:***.com/questions/39654428/… 我正在查看那个帖子,基本上我在发布我的问题时已经完成了所有步骤。就像安装了 Mysql 工作台和所有东西一样,然后通过那里我试图制作一个表格并得到了我发布的错误。那么有没有更具体的方法来解决这个问题呢?【参考方案2】:只是添加到那些正在使用 MySQL Workbench 的 Maria DB 的人中,您不需要安装 mysql。您只需将“默认目标 MySQL 版本”从 Preferences 更改为 5.7 或 5.6,工作台将删除 VISIBLE 关键字。
这是一个来自 mysql 错误的链接 https://bugs.mysql.com/bug.php?id=92269
【讨论】:
这应该是公认的答案。将其降至 5.7 为我们修复了它。使用 Mariadb 10.3【参考方案3】:我正在使用 MySQL Workbench 并且有同样的问题。 更改了首选项,但没有奏效。
解决方案:如果您导出正向工程模型,则需要在其他地方更改配置。
-
转到模型 > 模型选项
在模型选项中,转到 MySQL
然后将“目标 MySQL 版本”更改为 5.6
【讨论】:
以上是关于MySQL 错误 1064 语法,但一切似乎都很好的主要内容,如果未能解决你的问题,请参考以下文章
twitter 开发者 api oauth 提供了错误的身份验证数据,但一切都很好
我不知道为啥我在发送不和谐的 webhook 时收到 400 bad request 错误。一切似乎都很好,但我对此很陌生
我尝试在 heroku 中部署我的网络应用程序,在本地主机中,一切都很好,但是在 heroku 中,我收到以下错误
mysql 8.0 上的“group by desc”语法错误,在 5.7 上很好
SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误 — PHP — PDO [重复]