【问题标题】:Why Drop constraint if exists return an error MySQL?为什么如果存在则删除约束返回错误 MySQL?
【发布时间】:2021-02-24 17:34:20
【问题描述】:

为什么当我尝试在 MySQL 中运行此查询时,它给了我一个语法错误。 我只想在存在时删除外键

ALTER TABLE
    `messaggi`
DROP CONSTRAINT IF EXISTS
    `messaggi_ibfk_1`,
DROP CONSTRAINT IF EXISTS
    `messaggi_ibfk_2`;

【问题讨论】:

  • 您的标题暗示了 SQLServer (Microsoft) 然后您的问题建议使用 MySQL,但您还添加了 mariaDB。你在这里为我们做了一个猜谜游戏

标签: mysql sql database


【解决方案1】:

如有疑问,请参阅语法参考文档:

https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

| DROP {CHECK | CONSTRAINT} symbol

它只支持符号,即约束名称,紧跟在DROP CONSTRAINT之后。它不支持DROP CONSTRAINT 之后的可选IF EXISTS 子句。

这就是 MySQL 的 SQL 解析器代码的实现方式。它不支持你想到的任何语法,它只支持他们实现的语法。很多软件都是这样工作的。 :-)

在 2004 年提出了对 SQL 语法的增强请求,但被拒绝:https://bugs.mysql.com/bug.php?id=5746

【讨论】:

    猜你喜欢
    • 2019-04-03
    • 2011-04-24
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2014-09-11
    相关资源
    最近更新 更多