SQLite C 接口

准备好的语句扫描状态操作码

#define SQLITE_SCANSTAT_NLOOP    0
#define SQLITE_SCANSTAT_NVISIT   1
#define SQLITE_SCANSTAT_EST      2
#define SQLITE_SCANSTAT_NAME     3
#define SQLITE_SCANSTAT_EXPLAIN  4
#define SQLITE_SCANSTAT_SELECTID 5

以下常量可用于 sqlite3_stmt_scanstatus(S,X,T,V)接口的 T 参数。每个常量为 sqlite3_stmt_scanstatus() 指定一个不同的指标来返回。

当返回给 V 的值是一个字符串时,保存该字符串的空间由准备好的语句 S 管理,并在 S 完成时自动释放。

SQLITE_SCANSTAT_NLOOP
V 参数指向的sqlite3_int64变量将被设置为第 X 次循环运行的总次数。

SQLITE_SCANSTAT_NVISIT
V 参数指向的sqlite3_int64变量将设置为第 X 次循环的所有迭代检查的总行数。

SQLITE_SCANSTAT_EST
V 参数指向的“double”变量将设置为查询规划器对第 X 次循环每次迭代输出的平均行数的估计。如果查询规划器的估计是准确的,那么这个值将近似于商 NVISIT/NLOOP 并且所有具有相同 SELECTID 的先前循环的这个值的乘积将是当前循环的 NLOOP 值。

SQLITE_SCANSTAT_NAME
V 参数指向的“const char *”变量将被设置为一个以零结尾的 UTF-8 字符串,其中包含用于第 X 次循环的索引或表的名称。

SQLITE_SCANSTAT_EXPLAIN
V 参数指向的“const char *”变量将被设置为一个以零结尾的 UTF-8 字符串,其中包含 第 X 个循环的EXPLAIN QUERY PLAN描述。

SQLITE_SCANSTAT_SELECT
V 参数指向的“int”变量将被设置为第 X 次循环的“select-id”。select-id 标识循环所属的查询或子查询。主查询的 select-id 为零。select-id 与EXPLAIN QUERY PLAN查询 的第一列中输出的值相同。

另请参阅 对象常量函数的列表。