MySQL中的“接近”CASCADE“和”接近“CONSTRAINTS”错误是什么意思?

What do "near "CASCADE"" and "near "CONSTRAINTS" error mean in MySQL?

提问人:Brad Troll 提问时间:6/1/2023 更新时间:6/6/2023 访问量:79

问:

对于不正确使用sql术语,我深表歉意,我还是个新手。因此,我从关系模型中生成了一个ddl脚本,将其转换为MySQL并尝试“运行”(我运行它的应用程序称为phpMyAdmin),但是无论我做什么都失败了,因为这些错误不断发生:

无法识别的关键字。(在“CASCADE”附近,位置 203) 意外的推定。(在位置 211 的“CONSTRAINTS”附近)

如果有人有建议,我很乐意接受。 我将提供发生错误的实际代码行(这也是脚本的第一行):

DROP TABLE ad CASCADE CONSTRAINTS;

该脚本用于数据库。我试图在实体模型中“反向enngineer”它并生成不同的脚本,但相同的错误不断发生。

sql mysql phpmyadmin 语法错误

评论

1赞 jarlh 6/1/2023
意外的关键字。CONSTRAINTS
0赞 RiggsFolly 6/1/2023
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ... [RESTRICT | CASCADE]

答:

0赞 Cortard 6/1/2023 #1

从MySQL文档中,我们可以看到您的命令语法是非法的。

实际上,在MySQL中,您不能像您想要的那样在级联上删除:

RESTRICT并允许从其他数据库系统进行移植更容易。在MariaDB中,他们什么都不做。CASCADE

希望对你有所帮助。

评论

0赞 Brad Troll 6/1/2023
谢谢你!你对下一步该怎么做,或者如何“修复”它有什么建议吗?我意识到它可能非常初级,但我会很感激。无论哪种方式,感谢您回答我的问题!
0赞 Cortard 6/1/2023
很高兴,也许可以帮助你
0赞 Jack D 6/6/2023 #2

@Brad Troll Error 意味着关键字“Cascade”和“Constraint”无法识别,因为它们用于在删除父表中的所有表后从子表中删除所有行。

尝试使用代码:

DROP TABLE广告;

它将运行,不会给您任何错误。