我正在读这本书Android Database Programming
我想知道这里说的是否正确:
对于那些精通SQL编程和数据库的人来说,模式,您可能想知道是否可以添加触发器和键约束 到你的SQLite数据库模式。答案是,“是的,你可以使用触发器而不是, 你不能使用外键约束。“
还有:
请记住Android的SQLite数据库不支持关键约束
这对我来说很奇怪,因为我知道我可以使用(来自SQLite 3.6.19)
启用FK约束的 setForeignKeyConstraintsEnabled
方法,或者我可以关注this
我很困惑。所以问题是:为什么上述书说不支持FK?考虑到在发布时(2012年6月),Android 4.0.3(SQLite 3.7.4)已经发布。
答案 0 :(得分:1)
作者可能有很多理由不提及(EG:本书可能是在当前版本的SQLite早于3.6.19并且稍后发布时编写的),但它没有任何意义在StackOverflow中回答/猜测。
有意义的是,3.6.19中增加了外键支持这一事实,但它不仅仅是突然发挥作用。为了使用它们,有一些事情需要考虑:
3.6.19
SQLITE_OMIT_FOREIGN_KEY
或SQLITE_OMIT_TRIGGER
定义的PRAGMA foreign_keys
命令还应注意,默认情况下禁用FK约束以实现向后兼容性。因此,您应该为每个数据库连接启用它们。
中详细了解相关信息