SQLite – 编译指示

SQLite编译指示命令(PRAGMA)是一个特殊的命令是用于控制各种环境变量和状态标志在SQLite的环境。编译指示值可以读取,也可以根据需求设置。

语法:

查询当前的编译指示值,只是提供编译指示的名称:

PRAGMA pragma_name;

为编译指示设置一个新值,您将使用下面的语法:

PRAGMA pragma_name = value;

设置模式可以是名称或整数等价但返回值将永远是一个整数。

auto_vacuum编译指示

auto_vacuum pragma得到或设置auto-vacuum模式。

以下是简单的语法:

PRAGMA [database.]auto_vacuum;

PRAGMA [database.]auto_vacuum = mode;

模式可以是任何以下的一个:

编译指示值

描述

0 or NONE

Auto-vacuum是禁用的。这是默认模式,意味着数据库文件永远不会缩小规模,除非它是使用真空命令手动真空的。

1 or FULL

Auto-vacuum是启用和全自动收缩数据库文件作为数据从数据库中删除。

2 or INCREMENTAL

Auto-vacuum但必须启用手动激活。在这种模式下引用数据维护,但空闲页面只是空闲列表。这些页面可以恢复使用incremental_vacuum编译指示。

cache_size编译指示

cache_size pragma能或临时设置的最大大小内存页面缓存。

以下是简单的语法:

PRAGMA [database.]cache_size;

PRAGMA [database.]cache_size = pages;

页和10页的最小大小。

case_sensitive_like编译指示

case_sensitive_like pragma控制内置的大小写敏感性等表情。默认情况下,这个编译指示是假的,这意味着内置运营商忽略字母大小写。

以下是简单的语法:

PRAGMA case_sensitive_like =
[true|false];

没有办法查询编译指示当前状态。

count_changes编译指示

count_changes pragma得到或设置返回值等数据操作语句插入、更新和删除。

以下是简单的语法:

PRAGMA count_changes;

PRAGMA count_changes =
[true|false];

默认情况下,这个编译指示是假的,这些语句不返回任何值。如果设置为true,提到的每个语句将返回一个单列,one-row表组成的一个整数值表示影响行操作。

database_list编译指示

database_list pragma将用于列表下的所有数据库连接。以下是简单的语法:

PRAGMA database_list;

这个编译指示将返回每打开一行三列的表或附加数据库数据库序列号,其名称和相关文件。

Encoding(编码)编译指示

编码编译指示控制字符串进行编码并存储在一个数据库文件。以下是简单的语法:

PRAGMA encoding;

PRAGMA encoding = format;

格式的值可以是utf - 8,UTF-16le或UTF-16be。

freelist_count编译指示

freelist_count pragma返回一个整数表示目前有多少数据库页面标记为免费的和可用的。

以下是简单的语法:

PRAGMA [database.]freelist_count;

The format value can be one of UTF-8, UTF-16le, or UTF-16be.

index_info编译指示

index_info pragma返回数据库索引信息。以下是简单的语法:

PRAGMA [database.]index_info( index_name );

结果集将包含一行每一列包含在索引列顺序,列索引都会包含表和列名称。

index_list编译指示

index_list编译指示表列出了所有相关的索引。以下是简单的语法:

PRAGMA [database.]index_list( table_name );

每个索引的结果集将包含一行给指数序列,索引名称和标志指示是否指数是独一无二的。

journal_mode 编译指示

journal_mode pragma得到或设置日志模式控制日志文件的存储和处理。以下是简单的语法:

PRAGMA journal_mode;

PRAGMA journal_mode = mode;

PRAGMA database.journal_mode;

PRAGMA database.journal_mode = mode;

有五个支持日记模式:

Pragma Value

描述

DELETE

这是默认的模式。在事务的结论,日志文件删除。

TRUNCATE

文件截断的零字节长度。

PERSIST

文件保留在原处,但头覆盖显示不再有效。

MEMORY

记录保存在内存中,而不是在磁盘上。

OFF

没有日志记录保存。

max_page_count编译指示

max_page_count pragma得到或设置最大允许数据库的页面数。以下是简单的语法:

PRAGMA [database.]max_page_count;

PRAGMA [database.]max_page_count = max_page;

这是giga-page这意味着如果默认1 KB页面大小,这允许数据库1 tb成长。

page_count编译指示

page_count pragma返回当前数据库的页面数量。

以下是简单的语法:

PRAGMA [database.]page_count;

据库文件的大小应该page_count *页大小。

页大小编译指示

页大小编译指示得到或设置数据库页面的大小。

以下是简单的语法:

PRAGMA [database.]page_size;

PRAGMA [database.]page_size = bytes;

默认情况下,允许大小是512,1024,2048,4096,8192,16384,16384字节。的唯一途径改变现有数据库的页面大小设置页面大小,然后立即真空数据库。

parser_trace编译指示

parser_trace pragma控制打印调试状态解析SQL命令。

以下是简单的语法:

PRAGMA recursive_triggers;

PRAGMA recursive_triggers =
[true|false];

默认设置为false但通过将它设置为true时,SQL解析器解析SQL命令将打印它的状态。

recursive_triggers编译指示

recursive_triggers pragma得到或设置递归触发器功能。如果不启用,递归触发器触发动作不会火另一个触发器。以下是简单的语法:

PRAGMA recursive_triggers;

PRAGMA recursive_triggers =
[true|false];

schema_version编译指示

schema_version pragma得到或设置模式版本的值存储在数据库标题。

以下是简单的语法:

PRAGMA [database.]schema_version;

PRAGMA [database.]schema_version = number;

位带符号整数价值模式变化的跟踪。每当schema-altering执行命令(比如,创建…或删除…),这个值是递增的。

 

 

 

secure_delete编译指示

secure_delete pragma是用来控制如何从数据库中删除内容。

以下是简单的语法:

PRAGMA secure_delete;

PRAGMA secure_delete =
[true|false];

PRAGMA database.secure_delete;

PRAGMA database.secure_delete =
[true|false];

安全删除标记的默认值通常是,但这可以改变SQLITE_SECURE_DELETE构建选项。

sql_trace编译指示

sql_trace pragma用于转储SQL跟踪结果到屏幕上。

以下是简单的语法:

PRAGMA sql_trace;

PRAGMA sql_trace =
[true|false];

SQLite必须使用SQLITE_DEBUG指令编译这个编译指示包括在内。

Synchronous(同步)编译指示

synchronous(同步编译指示)获取或设置当前磁盘同步模式控制积极SQLite如何写入数据的物理存储。以下是简单的语法:

PRAGMA [database.]synchronous;

PRAGMA [database.]synchronous = mode;

SQLite支持以下同步模式:

Pragma Value

描述

0 or OFF

没有同步

1 or NORMAL

同步后每个序列的关键的磁盘操作

2 or FULL

同步后,每个磁盘操作的关键

temp_store编译指示

temp_store pragma得到或设置临时使用的数据库文件存储模式。

以下是简单的语法:

PRAGMA temp_store;

PRAGMA temp_store = mode;

SQLite支持以下存储模式:

Pragma Value

描述

0 or DEFAULT

默认编译选项,即文件存储。

1 or FILE

使用基于文件的存储。

2 or MEMORY

使用基于内存的存储。

temp_store_directory编译指示

temp_store_directory pragma得到或设置用于临时数据库文件的位置。

以下是简单的语法:

PRAGMA temp_store_directory;

PRAGMA temp_store_directory =
'directory_path';

user_version编译指示

user_version pragma得到或设置用户定义的版本的值存储在数据库标题。

以下是简单的语法:

PRAGMA writable_schema;

PRAGMA writable_schema =
[true|false];

位带符号整数的值可以由开发人员设置的版本跟踪的目的。

writable_schema编译指示

writable_schema pragma得到或设置修改系统表的能力。

以下是简单的语法:

PRAGMA writable_schema;

PRAGMA writable_schema =
[true|false];

如果这个设置编译指示,表开始sqlite_可以创建和修改,包括sqlite_master表。使用编译指示时要小心,因为它可能导致完整的数据库损坏。

 

 

 

SQLite-编译指示的更多相关文章

  1. oracle package pragma SERIALLY_REUSABLE(编译指示 告诉PL/SQL 的运行时引擎,在数据引用之时不要保持包级数据。)

    当包第一次被动调用时,将进行初始化:比如将包从硬盘上调到内存中来,放到系统全局工作区的共享缓冲池中,包的运行状态则被放到用户全局区的会话中存储区中,因此可以保证每个调用包的会话都拥有包的运行副本,当会 ...

  2. sqlite编译

    1.下载代码:http://www.sqlite.org/download.html ,windows下下载sqlite-amalgamation-xxx.zip和sqlite-dll-win32-x ...

  3. SQLite 编译错误 - 试图加载格式不正确的程序

    刚开始用SQLite,刚开始写了一个小程序,连接数据库的时候出现了问题,提示试图加载格式不正确的程序, 原因是我当前工程的目标平台是X86,改成Any CPU之后问题就解决了.如下图:

  4. SQLite安装、编译与应用

    什么是 SQLite SQLite是一款轻量级的.基于文件的嵌入式数据库,实现自包容.零配置.支持事务的SQL数据库引擎.与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下, ...

  5. 提升SQLite数据插入效率低、速度慢的方法

    前言 SQLite数据库由于其简单.灵活.轻量.开源,已经被越来越多的被应用到中小型应用中.甚至有人说,SQLite完全可以用来取代c语言中的文件读写操作.因此我最近编写有关遥感数据处理的程序的时候, ...

  6. 浅析SQLite的锁机制和WAL技术

    锁机制 SQLite基于锁来实现并发控制.SQLite的锁是粗粒度的,并不拥有PostgreSQL那样细粒度的行锁,这也使得SQLite较为轻量级.当一个连接要写数据库时,所有其它的连接都被锁住,直到 ...

  7. 提升SQLite数据插入效率低、速度慢的方法(转)

    前言 SQLite数据库由于其简单.灵活.轻量.开源,已经被越来越多的被应用到中小型应用中.甚至有人说,SQLite完全可以用来取代C语言中的文件读写操作.因此我最近编写有关遥感数据处理的程序的时候, ...

  8. sqlite批量处理数据性能优化

    最近设计到sqlite数据库批量操作的,性能很是问题.于是一番研究(站在巨人肩膀)从网上整理出来相关性能优化方向.大体分三个级别,一般第一个阶段已足够. 1.sqlite每次插入数据(每调用一次sql ...

  9. [转载]提升SQLite数据插入效率低、速度慢的方法

    转载地址:http://blog.csdn.net/chenguanzhou123/article/details/9376537#,如果有侵犯原创,请留言告知,本人会及时删除. 前言 SQLite数 ...

随机推荐

  1. linux学习5-命令执行顺序控制与管道

    一.命令执行顺序控制 1.顺序执行命令——[:] eg:whoami:cd ~:pwd 问题:不适合存在依赖关系的命令 2.有选择的执行命令[&&].[||] [&&] ...

  2. Django——1 环境搭建

    Django 什么是Django 使用前的准备工作 新建项目 开启服务器 新建APP 简单实战 什么是Django框架 http服务器:用来接受用户请求,并将请求转发给web应用框架进行处理.Web应 ...

  3. 【codeforces 509C】Sums of Digits

    [题目链接]:http://codeforces.com/contest/509/problem/C [题意] 给你一个数组b[i] 要求一个严格升序的数组a[i]; 使得a[i]是b[i]各个位上的 ...

  4. 详解Cookie、LocalStorage、SessionStorage

    不管是笔试还是面试相信大家都会经常遇到问Cookie.LocalStorage.SessionStorage 这三个不同的,什么不说先上一波图先: 针对他们大小之分应用场景也有不同: 因为考虑到每个 ...

  5. RestEasy 用户指南----第4章.使用@Path @GET @POST 等

    转载说明出处:http://blog.csdn.net/nndtdx/article/details/6870391 原文地址 http://docs.jboss.org/resteasy/docs/ ...

  6. BZOJ1192 鬼谷子的钱袋

    没想到这是一道省选题... /* BZOJ1192 */ #include <cstdio> int main() { ; scanf("%d",&m); ;m ...

  7. 在django里用xlwt作EXCEL导出功能

    参考了以前kevin的代码,搞起来快呀,哈哈哈,,阿里亚多.... 代码的意思比较明白,不注释,几乎自解释... 就是定义EXCEL时,比较硬生生的,一步一步没有快捷的方法. 另外就是取时间出来时,如 ...

  8. [bzoj3037/2068]创世纪[Poi2004]SZP_树形dp_并查集_基环树

    创世纪 SZP bzoj-3037/2068 Poi-2004 题目大意:给你n个物品,每个物品可以且仅可以控制一个物品.问:选取一些物品,使得对于任意的一个被选取的物品来讲,都存在一个没有被选取的物 ...

  9. CF #327 DIV2 D、E

    两题都不难. 对于D题,可以使用相对移动,把吹aircraft移动变成相反方向的待援点的移动.假设此时时间为t,把aircraft的速度设为Vmax,看待援点在飞船最大速度飞行t秒的范围内,注意风向变 ...

  10. stl变易算法(三)

    本篇接着前面stl变易算法(一)和stl变易算法(二)继续讲述变易算法. 这里将介绍完余下的变易算法,主要有:填充fill.n次填充fill_n.随机生成元素generate.随机生成n个元素gene ...