删除SQLite中的引用和引用表

时间:2016-02-24 17:28:56

标签: sqlite foreign-keys drop-table

使用https://www.sqlite.org/foreignkeys.html

处的艺术家/曲目示例

我想放下两张桌子。我想如果我第一次放下曲目(参考艺术家),我就可以放弃艺术家了:

stat_5.executeUpdate("删除表,如果存在曲目;"); stat_6.executeUpdate(" drop table if exists artist;");

但这会发出异常" SQLException:外键约束失败"

我错过了什么?

1 个答案:

答案 0 :(得分:0)

documentation说:

  

如果启用了外键约束,则在从数据库模式中删除表之前,DROP TABLE命令会执行隐式DELETE FROM命令。 [...]如果作为DROP TABLE命令的一部分执行的隐式DELETE FROM违反了任何直接外键约束,则会返回错误并且不会删除该表。

以正确的顺序删除数据,以便所有中间步骤都有效。 或者只是禁用外部约束检查。