SQLite外键约束

问题描述:

我正在使用Java与SQLiteJDBCSQLite外键约束

我挣扎理解为什么我的外键不作为限制,直到我读了以下内容:

此前3.6.19版本,SQLite的不支持外键约束。

然后我把在SQLiteJDBC网站仔细一看,发现:

目前的版本是v056,基于SQLite的3.6.14.2。

有一个解决方案文档here,虽然它是一个非常古老的文章 - 它仍然是继续进行的最佳方式?其他SQLite Java连接器会被推荐吗?

+0

这是升级是一个昂贵的操作的情况吗?升级是最好的方式,因为新版本提供了您想要的功能。 – MrGomez 2012-03-22 21:50:50

+0

我对替代品非常开放;这完全是一个学习曲线,不管它是一个令人沮丧的。你是指新版本?编辑:我认为有一些混淆 - SQLiteJDBC是建立在脱离SQLite的版本之前,实现了外键约束。 – c24w 2012-03-22 22:03:59

+1

我的错误。事实证明,这并不是基于3.6.19以上版本的SQLiteJDBC的更新版本。事实上,它自2009年以来一直没有更新。所以,这是行不通的。 – MrGomez 2012-03-22 22:06:03

Java中的SQLite支持似乎是not be so great

您可以重建javasqlite针对的SQLite的新版本,因为它取决于:

的SQLite 2.4.12 或更高

是否会实际工作还有被看到,但我认为SQLite有一个相当稳定的API。

您也可以尝试针对较新版本的SQLite构建SQLiteJDBC from source

编辑:

事实上,Xerial SQLiteJDBC一直updated much more recently。显然,它是很慢的,因为它是纯Java。