如何在SQLite中添加自己的PRAGMA语句来存储自定义元数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SQLite中添加自己的PRAGMA语句来存储自定义元数据?相关的知识,希望对你有一定的参考价值。
我想在不创建新表的情况下,将作者姓名、版权、来源等元数据存储到我的SQLite DB中。我发现我们可以使用PRAGMA语句来设置一些值。我想存储我自己的自定义名称和值 ... 如何创建自定义PRAGMA语句?http:/www.sqlite.orgpragma.html
有人做过这个吗? 文档中说...
"SQLite的C语言API提供了SQLITE_FCNTL_PRAGMA文件控件,它使VFS实现有机会添加新的PRAGMA语句或覆盖内置PRAGMA语句的含义。"
请告诉我如何才能实现?
内置的PRAGMA在数据库中存储自己的值,是在 数据库头.
没有足够的空间来添加自定义值。
你别无选择,只能创建一个新表。
不知道这对你来说是否足够,但我使用了 user_version
来跟踪最后一次模式检查。
我所做的是保存它最后一次与代码模式检查的时间戳。如果已经过了24小时,或者5米,或者其他什么,我就重新检查并更新东西。我只需要1个32b的int就可以了,所以很完美。如果你需要更多,这不是它。
更多信息 user_version
此处(PRAGMA schema_version
) 和 此处
看看新的 校验和 VFS Shim 的例子,以了解VFS添加自定义pragma的情况。
源代码在上面的页面上有链接,但是...。又来了,以备不时之需。
但当然,你不能存储额外的信息,除非通过表。因此,虽然上面确实展示了如何实现自定义pragma,但你的实际最终目标是不可能实现的,因为表头是固定的,是为SQLite本身保留的。如果你有一个表,那为什么还要有一个pragma呢?
以上是关于如何在SQLite中添加自己的PRAGMA语句来存储自定义元数据?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 SQLite pragma foreign_keys 在数据库连接中不持久?
如何使用 #pragma 和 gcc 选择性地禁用 -Werror
SQLite pragma 命令中的 Android Studio 标记错误,<pragma value> 应为“ON”