【问题标题】:how do I figure out the right order to drop tables in sqlite?如何确定在 sqlite 中删除表的正确顺序?
【发布时间】:2026-01-07 02:25:01
【问题描述】:

我有一组需要放入 Sqlite 文件的表。他们有外键约束。我如何确定删除表格的正确顺序?或者是否有一个“删除表格列表”命令可以为我解决这个问题?我应该在网络上搜索什么来获得关于这个问题的帮助,因为将“订单”添加到与 SQL 相关的任何网络搜索都会返回有关 ORDER 关键字的信息。

【问题讨论】:

    标签: sql sqlite database-schema


    【解决方案1】:

    如果表中有外键,约束将阻止您删除拥有外键的表。 “外键”只是另一个表的主键,因此对您来说是“外键”。所以你需要先删除带有外键的表——然后你可以删除那些其他的表。删除表也会删除其约束。

    对于蛮力的事情,您应该能够使用以下方法禁用约束:

    PRAGMA foreign_keys = OFF;
    

    【讨论】:

    • 好吧,我不能以任意顺序删除所有带有外键的表;其中一些包含其他表中的外来主键。
    • 尝试禁用约束,如我修改后的答案所示。
    最近更新 更多