首页 > 解决方案 > 如何在外部修改数据库的最大页数?

问题描述

我试图从外部修改数据库的最大页面。

我使用的代码是

 sqlite3 database.sqlite 'PRAGMA main.max_page_count = 2147483646;'

它返回

 2147483646

但是,当我打开数据库并检查最大页面时

PRAGMA main.max_page_count;

它返回1073741823。当我修改sqlite3界面中的最大页面时

PRAGMA main.max_page_count = 2147483646;

最大页数已成功修改。我应该怎么做才能在外部修改它?

标签: sqlite

解决方案


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定义为您想要的值。


推荐阅读