【问题标题】:MySQL syntax error - dropping foreign key if existMySQL 语法错误 - 如果存在则删除外键
【发布时间】:2017-03-22 00:58:51
【问题描述】:

以下 ALTER 语句在我的本地 (xamp) 上运行良好,但在我的服务器 (Debian) 上,我收到此错误:

You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 
'IF EXISTS `foreign_key1`' at line 1 

这是查询:

ALTER TABLE `table` DROP FOREIGN KEY IF EXISTS `foreign_key1`;

如何修复错误?

【问题讨论】:

  • 如果您显示完整的代码,或者至少是其中的大部分,也许会有所帮助。
  • 您希望我们使用我们的通灵能力来读懂您的思想,还是使用我们的传送技能来顺便看看您的屏幕?你的偏好是哪一个?在等待期间,您可以阅读How to Ask 来娱乐自己。

标签: mysql foreign-keys syntax-error


【解决方案1】:

听起来您的开发环境正在运行 MariaDB,而您的服务器正在运行 MySQL。

MySQL 不支持ALTER TABLE 语句中的IF EXISTS

MariaDB 10.0 支持该语法。

要确认每个环境运行的版本,我们可以执行

SHOW VARIABLES LIKE 'version'

MariaDB https://mariadb.com/kb/en/mariadb/alter-table/

MySQLhttps://dev.mysql.com/doc/refman/5.7/en/alter-table.html


我不知道这是否回答了所提出的问题......“观察到的行为的解释是什么?” (是这个问题吗?)

【讨论】:

猜你喜欢
  • 2018-10-10
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多