android SQLite数据库是否支持关键约束?

时间:2013-10-27 22:01:34

标签: android database sqlite

我正在读这本书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)已经发布。

1 个答案:

答案 0 :(得分:1)

作者可能有很多理由不提及(EG:本书可能是在当前版本的SQLite早于3.6.19并且稍后发布时编写的),但它没有任何意义在StackOverflow中回答/猜测。

有意义的是,3.6.19中增加了外键支持这一事实,但它不仅仅是突然发挥作用。为了使用它们,有一些事情需要考虑:

  • SQLite版本应为> = 3.6.19
  • 必须使用SQLITE_OMIT_FOREIGN_KEYSQLITE_OMIT_TRIGGER定义的
  • 编译库
  • 应用程序必须在运行时使用PRAGMA foreign_keys命令
  • 启用对FK的支持

还应注意,默认情况下禁用FK约束以实现向后兼容性。因此,您应该为每个数据库连接启用它们。

您可以在official documentation

中详细了解相关信息