千家信息网

SQLite 运行时限制(Run-time Limits)

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,摘自:http://www.sqlite.org/c3ref/limit.htmlint sqlite3_limit(sqlite3*, int id, intnewVal);该接口允许在连接的过程中
千家信息网最后更新 2026年10月31日SQLite 运行时限制(Run-time Limits)

摘自:http://www.sqlite.org/c3ref/limit.html


int sqlite3_limit(sqlite3*, int id, intnewVal);
该接口允许在连接的过程中(by connection basis),对连接(on a connection)的变量结构(various constructs)进行限制。第一个参数指定了被限制的设置或者查询的数据库的句柄。第二个参数指定了被限制的类别(categories),该结构定义了一系列可被限制尺寸大小的结构变量(The second parameter is one of the limit categories that define aclass of constructs to be size limited)。第三个参数是对该结构的新的限制。如下是定义的限制类别:
#define SQLITE_LIMIT_LENGTH 0
#define SQLITE_LIMIT_SQL_LENGTH 1
#define SQLITE_LIMIT_COLUMN 2
#define SQLITE_LIMIT_EXPR_DEPTH 3
#define SQLITE_LIMIT_COMPOUND_SELECT 4
#define SQLITE_LIMIT_VDBE_OP 5
#define SQLITE_LIMIT_FUNCTION_ARG 6
#define SQLITE_LIMIT_ATTACHED 7
#defineSQLITE_LIMIT_LIKE_PATTERN_LENGTH 8
#define SQLITE_LIMIT_VARIABLE_NUMBER 9
#define SQLITE_LIMIT_TRIGGER_DEPTH 10
#define SQLITE_LIMIT_WORKER_THREADS 11
详细请参考:http://www.sqlite.org/c3ref/c_limit_attached.html

如果一个给定的限制值是一个负值,限制不会生效。对于每一个限制的类别,在编译的过程中,已经通过C的宏定义(变量名称为SQLITE_MAX_NAME,当然限制名称为SQLITE_LIMIT_NAME),指定了该值的上限(a hard upper bound).如果指定的值超出了上限,就会将该值指定为上限(truncated to the hard upper bound Categories).

不管限制值有没有改变,sqlite3_limit的返回值都是上一次的限制值。因此,如果我们想知道当前设置的限制值是多少,就可以通过设置该函数的第三个参数,指定为-1,就可以查询该结构体的限制值是 多少。
例如:
int permitexecutelength = sqlite3_limit(pdb, 1 , -1);
说明:返回当前允许执行的SQL语句的长度,保存在permitexecutelength变量中。

该设计既可以用于管理客户内部的数据库,也可以控制一些不可靠的访问数据来源。一个明显的例子就是网页浏览器,她自身拥有存储历史记录,并且将从网上下载的JavaScript脚本和本地的数据库进行分离(separate databases controlled by JavaScript applications downloaded off the Internet).内部的数据库可以给一个很大的默认限制值。 为了抵御DDOS非法访问,一般会给一个更加小的默认限制值。开发者可以调用sqlite3_set_authorizer()接口,来控制不可靠的SQL语句。可以使用max_page_count PRAGMA宏,来限制不可靠的脚本生成的数据库的大小。

限制 限制值 数据 数据库 结构 参数 变量 上限 类别 三个 名称 大小 接口 脚本 语句 过程 控制 查询 很大 明显 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 山东特亿宝互联网科技有限公司 华宇互联网科技 卓越科技(互联网 ) 成都互联网科技公司 无线互联网科技 深圳天众互联网科技公司 宝灵互联网科技有限公司 语蝶互联网科技有限公司 中国互联网十大科技股排名 深圳市罗太互联网科技有限公司 黑云互联网科技有限公司 陕西云淼互联网科技公司 互联网科技接地气 陕西九四连强互联网科技有限公司 互联网公司属于科技吗 第三届互联网大会安防黑科技 上海旺乐尼互联网科技有限公司 互联网高科技绘画 小牛互联网科技有限公司地址 河南云网互联网络科技有限公司 互联网科技股票 科技与互联网的利与弊 洛阳共同富裕互联网科技有限公司 东营紫格互联网科技 山东大美朱楼互联网科技有限公司 云南互联网科技学费 河南商务圈互联网科技有限公司 恒生互联网科技趋势 互联网科技自媒体灵感
0