黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

SQLite PRAGMA

sqlite pragma

sqlite 的 pragma 命令是一個特殊的命令,可以用在 sqlite 環(huán)境內(nèi)控制各種環(huán)境變量和狀態(tài)標(biāo)志。一個 pragma 值可以被讀取,也可以根據(jù)需求進(jìn)行設(shè)置。

 

1. 語法

要查詢當(dāng)前的 pragma 值,只需要提供該 pragma 的名字:

pragma pragma_name;

要為 pragma 設(shè)置一個新的值,語法如下:

pragma pragma_name = value;

設(shè)置模式,可以是名稱或等值的整數(shù),但返回的值將始終是一個整數(shù)。

 

2. auto_vacuum pragma

auto_vacuum pragma 獲取或設(shè)置 auto-vacuum 模式。語法如下:

pragma [database.]auto_vacuum;
pragma [database.]auto_vacuum = mode;

其中,mode 可以是以下任何一種:

pragma 值描述
0 或 none禁用 auto-vacuum。這是默認(rèn)模式,意味著數(shù)據(jù)庫文件尺寸大小不會縮小,除非手動使用 vacuum 命令。
1 或 full啟用 auto-vacuum,是全自動的。在該模式下,允許數(shù)據(jù)庫文件隨著數(shù)據(jù)從數(shù)據(jù)庫移除而縮小。
2 或 incremental啟用 auto-vacuum,但是必須手動激活。在該模式下,引用數(shù)據(jù)被維持,自由頁面只放在自由列表中。這些頁面可在任何時候使用 incremental_vacuum pragma 進(jìn)行覆蓋。

 

3. cache_size pragma

cache_size pragma 可獲取或暫時設(shè)置在內(nèi)存中頁面緩存的最大尺寸。語法如下:

pragma [database.]cache_size;
pragma [database.]cache_size = pages;

pages 值表示在緩存中的頁面數(shù)。內(nèi)置頁面緩存的默認(rèn)大小為 2,000 頁,最小尺寸為 10 頁。

 

4. case_sensitive_like pragma

case_sensitive_like pragma 控制內(nèi)置的 like 表達(dá)式的大小寫敏感度。默認(rèn)情況下,該 pragma 為 false,這意味著,內(nèi)置的 like 操作符忽略字母的大小寫。語法如下:

pragma case_sensitive_like = [true|false];

目前沒有辦法查詢該 pragma 的當(dāng)前狀態(tài)。

 

5. count_changes pragma

count_changes pragma 獲取或設(shè)置數(shù)據(jù)操作語句的返回值,如 insert、update 和 delete。語法如下:

pragma count_changes;
pragma count_changes = [true|false];

默認(rèn)情況下,該 pragma 為 false,這些語句不返回任何東西。如果設(shè)置為 true,每個所提到的語句將返回一個單行單列的表,由一個單一的整數(shù)值組成,該整數(shù)表示操作影響的行。

 

6. database_list pragma

database_list pragma 將用于列出了所有的數(shù)據(jù)庫連接。語法如下:

pragma database_list;

該 pragma 將返回一個單行三列的表格,每當(dāng)打開或附加數(shù)據(jù)庫時,會給出數(shù)據(jù)庫中的序列號,它的名稱和相關(guān)的文件。

 

7. encoding pragma

encoding pragma 控制字符串如何編碼及存儲在數(shù)據(jù)庫文件中。語法如下:

pragma encoding;
pragma encoding = format;

格式值可以是 utf-8、utf-16le 或 utf-16be 之一。

 

8. freelist_count pragma

freelist_count pragma 返回一個整數(shù),表示當(dāng)前被標(biāo)記為免費(fèi)和可用的數(shù)據(jù)庫頁數(shù)。語法如下:

pragma [database.]freelist_count;

 

9. index_info pragma

index_info pragma 返回關(guān)于數(shù)據(jù)庫索引的信息。語法如下:

pragma [database.]index_info( index_name );

結(jié)果集將為每個包含在給出列序列的索引、表格內(nèi)的列索引、列名稱的列顯示一行。

 

10. index_list pragma

index_list pragma 列出所有與表相關(guān)聯(lián)的索引。語法如下:

pragma [database.]index_list( table_name );

結(jié)果集將為每個給出列序列的索引、索引名稱、表示索引是否唯一的標(biāo)識顯示一行。

 

11. journal_mode pragma

journal_mode pragma 獲取或設(shè)置控制日志文件如何存儲和處理的日志模式。語法如下::

pragma journal_mode;
pragma journal_mode = mode;
pragma database.journal_mode;
pragma database.journal_mode = mode;

這里支持五種日志模式:

pragma 值描述
delete默認(rèn)模式。在該模式下,在事務(wù)結(jié)束時,日志文件將被刪除。
truncate日志文件被階段為零字節(jié)長度。
persist日志文件被留在原地,但頭部被重寫,表明日志不再有效。
memory日志記錄保留在內(nèi)存中,而不是磁盤上。
off不保留任何日志記錄。

 

12. max_page_count pragma

max_page_count pragma 為數(shù)據(jù)庫獲取或設(shè)置允許的最大頁數(shù)。語法如下:

pragma [database.]max_page_count;
pragma [database.]max_page_count = max_page;

默認(rèn)值是 1,073,741,823,這是一個千兆的頁面,即如果默認(rèn) 1 kb 的頁面大小,那么數(shù)據(jù)庫中增長起來的一個兆字節(jié)。

 

13. page_count pragma

page_count pragma 返回當(dāng)前數(shù)據(jù)庫中的網(wǎng)頁數(shù)量。語法如下:

pragma [database.]page_count;

數(shù)據(jù)庫文件的大小應(yīng)該是 page_count * page_size。

 

14. page_size pragma

page_size pragma 獲取或設(shè)置數(shù)據(jù)庫頁面的大小。語法如下:

pragma [database.]page_size;
pragma [database.]page_size = bytes;

默認(rèn)情況下,允許的尺寸是 512、1024、2048、4096、8192、16384、32768 字節(jié)。改變現(xiàn)有數(shù)據(jù)庫頁面大小的唯一方法就是設(shè)置頁面大小,然后立即 vacuum 該數(shù)據(jù)庫。

 

15. parser_trace pragma

parser_trace pragma 隨著它解析 sql 命令來控制打印的調(diào)試狀態(tài),語法如下:

pragma parser_trace = [true|false];

默認(rèn)情況下,它被設(shè)置為 false,但設(shè)置為 true 時則啟用,此時 sql 解析器會隨著它解析 sql 命令來打印出它的狀態(tài)。

 

16. recursive_triggers pragma

recursive_triggers pragma 獲取或設(shè)置遞歸觸發(fā)器功能。如果未啟用遞歸觸發(fā)器,一個觸發(fā)動作將不會觸發(fā)另一個觸發(fā)。語法如下:

pragma recursive_triggers;
pragma recursive_triggers = [true|false];

 

17. schema_version pragma

schema_version pragma 獲取或設(shè)置存儲在數(shù)據(jù)庫頭中的的架構(gòu)版本值。語法如下:

pragma [database.]schema_version;
pragma [database.]schema_version = number;

這是一個 32 位有符號整數(shù)值,用來跟蹤架構(gòu)的變化。每當(dāng)一個架構(gòu)改變命令執(zhí)行(比如 create... 或 drop...)時,這個值會遞增。

 

18. secure_delete pragma

secure_delete pragma 用來控制內(nèi)容是如何從數(shù)據(jù)庫中刪除。語法如下:

pragma secure_delete;
pragma secure_delete = [true|false];
pragma database.secure_delete;
pragma database.secure_delete = [true|false];

安全刪除標(biāo)志的默認(rèn)值通常是關(guān)閉的,但是這是可以通過 sqlite_secure_delete 構(gòu)建選項(xiàng)來改變的。

 

19. sql_trace pragma

sql_trace pragma 用于把 sql 跟蹤結(jié)果轉(zhuǎn)儲到屏幕上。語法如下:

pragma sql_trace;
pragma sql_trace = [true|false];

sqlite 必須通過 sqlite_debug 指令來編譯要引用的該 pragma。

 

20. synchronous pragma

synchronous pragma 獲取或設(shè)置當(dāng)前磁盤的同步模式,該模式控制積極的 sqlite 如何將數(shù)據(jù)寫入物理存儲。語法如下:

pragma [database.]synchronous;
pragma [database.]synchronous = mode;

sqlite 支持下列同步模式:

pragma 值描述
0 或 off不進(jìn)行同步。
1 或 normal在關(guān)鍵的磁盤操作的每個序列后同步。
2 或 full在每個關(guān)鍵的磁盤操作后同步。

 

21. temp_store pragma

temp_store pragma 獲取或設(shè)置臨時數(shù)據(jù)庫文件所使用的存儲模式。語法如下:

pragma temp_store;
pragma temp_store = mode;

sqlite 支持下列存儲模式:

pragma 值描述
0 或 default默認(rèn)使用編譯時的模式。通常是 file。
1 或 file使用基于文件的存儲。
2 或 memory使用基于內(nèi)存的存儲。

 

22. temp_store_directory pragma

temp_store_directory pragma 獲取或設(shè)置用于臨時數(shù)據(jù)庫文件的位置。語法如下:

pragma temp_store_directory;
pragma temp_store_directory = 'directory_path';

 

23. user_version pragma

user_version pragma 獲取或設(shè)置存儲在數(shù)據(jù)庫頭的用戶自定義的版本值。語法如下:

pragma [database.]user_version;
pragma [database.]user_version = number;

這是一個 32 位的有符號整數(shù)值,可以由開發(fā)人員設(shè)置,用于版本跟蹤的目的。

 

24. writable_schema pragma

writable_schema pragma 獲取或設(shè)置是否能夠修改系統(tǒng)表。語法如下:

pragma writable_schema;
pragma writable_schema = [true|false];

如果設(shè)置了該 pragma,則表以 sqlite_ 開始,可以創(chuàng)建和修改,包括 sqlite_master 表。使用該 pragma 時要注意,因?yàn)樗赡軐?dǎo)致整個數(shù)據(jù)庫損壞。

下一節(jié):sqlite 約束

sqlite教程

相關(guān)文章