mysql中的顺序是否重要`drop table if exists< some table>`

dw1jzc5e  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(501)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

两年前关门了。
改进这个问题
打电话的时候,顺序重要吗 DROP TABLE IF EXISTS <some table> 在sql脚本的顶部?

aiqt4smr

aiqt4smr1#

是的,如果你打电话的话 DROP TABLE IF EXISTS.... 在编写脚本之后,它将删除已经创建的新表,这可能是您最不希望看到的。
如果你打电话 DROP TABLE IF EXISTS.... 在此之前,如果表已经存在,请确保脚本不会失败

6ss1mwsb

6ss1mwsb2#

如果您担心外键,那么应该首先删除子表。如果一个表在另一个表中引用,则不能删除该表。但暂时禁用密钥检查更容易。

SET FOREIGN_KEY_CHECKS = 0;

DROP TABLE ...;
...
DROP TABLE ...;

SET FOREIGN_KEY_CHECKS = 1;

那你就不需要关心table的摆放顺序了。
注意,当您启用键检查时,架构应该是“干净的”——不应该有任何外键引用到不存在的表。否则 SET FOREIGN_KEY_CHECKS = 1 会失败的。

相关问题