sqlite - 如何在外部修改数据库的最大页数?
问题描述
我试图从外部修改数据库的最大页面。
我使用的代码是
sqlite3 database.sqlite 'PRAGMA main.max_page_count = 2147483646;'
它返回
2147483646
但是,当我打开数据库并检查最大页面时
PRAGMA main.max_page_count;
它返回1073741823。当我修改sqlite3界面中的最大页面时
PRAGMA main.max_page_count = 2147483646;
最大页数已成功修改。我应该怎么做才能在外部修改它?
解决方案
该max_page_count
设置是一个运行时选项,不会在与数据库的连接之间持续存在:
$ sqlite3 foo.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite> pragma max_page_count=600;
max_page_count
--------------
600
sqlite> .quit
$ sqlite3 foo.db
SQLite version 3.29.0 2019-07-10 17:32:03
Enter ".help" for usage hints.
sqlite> pragma max_page_count;
max_page_count
--------------
1073741823
如果您查看数据库标头的描述,您会发现没有最大页数字段。就像打开外键支持之类的事情一样,您必须明确设置每个连接的限制。或者您可以编译自定义版本,并SQLITE_MAX_PAGE_COUNT
定义为您想要的值。
推荐阅读
- google-sheets - 如何设计一个公式(例如 COUNTIF),在多个工作表中搜索参考单元格中文本的部分匹配?
- azure - 如何从 Azure 安排部署在 Azure App Service Web App 上的 Http Post 服务
- active-directory - 添加了新的域控制器,但更改不会复制到现有服务器
- javascript - JavaScript小行星游戏的矢量文本?
- sql-server - 为什么在代码中使用 EF6 connectionString 时出现“System.Data.MetadataException:'无法加载指定的元数据资源。'”错误?
- javafx - 为什么我的 javaFX 代码在 cmd 上运行良好,但在 Visual Studio Code 中抛出错误?
- powershell - 使用 cmd 中的参数调用 PowerShell 命令
- rxjs - 调用其他可观察对象的条件可观察对象?
- git - 有没有办法存储当前的 git 索引,`git add -u`,然后将索引恢复到存储状态?
- c - 是否有可能知道从文件中读取的长文本在 C 中会有多少个字符?