SQLiteのPRAGMA
SQLiteのザ・PRAGMAコマンドは、特別なコマンドは、環境変数SQLiteの環境制御とステータスフラグの様々な使用することができますです。 PRAGMA値を読み取ることができ、それは、要求に応じて設定することができます。
文法
プラグマの現在の値を照会するには、あなただけがプラグマの名前を提供する必要があります。
プラグマpragma_name。
プラグマは、次の構文に新しい値を設定するには:
プラグマpragma_name =値;
モードを設定するには、名前または整数に相当することができますが、戻り値は常に整数になります。
auto_vacuumプラグマ
auto_vacuumプラグマは、自動真空モードを取得または設定します。構文は次のとおりです。
プラグマ[データベース] Auto_vacuum。 プラグマ[データベース] Auto_vacuum =モード。
ここで、モードは、次のいずれかになります。
Pragma 值 | 描述 |
---|---|
0 或 NONE | 禁用 Auto-vacuum。这是默认模式,意味着数据库文件尺寸大小不会缩小,除非手动使用 VACUUM 命令。 |
1 或 FULL | 启用 Auto-vacuum,是全自动的。在该模式下,允许数据库文件随着数据从数据库移除而缩小。 |
2 或 INCREMENTAL | 启用 Auto-vacuum,但是必须手动激活。在该模式下,引用数据被维持,免费页面只放在免费列表中。这些页面可在任何时候使用incremental_vacuum pragma进行覆盖。 |
CACHE_SIZEプラグマ
CACHE_SIZEプラグマは、メモリキャッシュ内の一時的なページの最大サイズを取得または設定することができます。構文は次のとおりです。
プラグマ[データベース] CACHE_SIZE。 [データベース] PRAGMA CACHE_SIZE =ページ。
値は、ページ・キャッシュ内のページ数を表します。 組み込まれているデフォルト・ページ・キャッシュ・サイズが2000ページで、最小サイズは10です。
プラグマcase_sensitive_like
敏感case_sensitive_likeプラグマは、発現制御感度のように構築しました。 デフォルトでは、プラグマは、内蔵LIKE演算子は大文字と小文字を無視することを意味し、falseです。 構文は次のとおりです。
プラグマcase_sensitive_like = [真|偽];
プラグマの現在の状態を確認する方法はありません。
count_changesプラグマ
count_changesプラグマを取得またはINSERT、UPDATE、DELETEなどのデータ操作文の戻り値を設定します。構文は次のとおりです。
プラグマcount_changes。 プラグマcount_changes = [真|偽];
デフォルトでは、プラグマが偽で、文は何も返しません。 trueに設定すると、単一の個別のテーブルが返されます言及した各ステートメントは、整数演算の影響を受ける行を表す単一の整数値で構成されています。
database_listプラグマ
database_listプラグマは、すべてのデータベースへの接続を表示するために使用されます。構文は次のとおりです。
プラグマdatabase_list。
プラグマがオンになったときに、3つの列を持つ単一行のテーブルを返したり、データベースをアタッチします、データベースは、シリアル番号、その名前と関連ファイルを提供します。
エンコーディングプラグマ
データベースファイルにエンコードされ、保存されているエンコーディングプラグマ文字列を制御する方法。 構文は次のとおりです。
PRAGMAエンコーディング。 PRAGMAエンコード=形式。
フォーマット値はUTF-8、UTF-16LE 1またはUTF-16BEすることができます。
freelist_countプラグマ
freelist_countプラグマは、現在無料で利用可能なデータベース・ページとしてマークさを表す整数を返します。構文は次のとおりです。
プラグマ[データベース] Freelist_count。
フォーマット値はUTF-8、UTF-16LE 1またはUTF-16BEすることができます。
プラグマindex_info
プラグマindex_infoデータベースインデックスに関する情報を返します。構文は次のとおりです。
プラグマ[データベース] Index_info(INDEX_NAME)。
各列の結果セットは、テーブル内の指定されたインデックスのシーケンス、列のインデックスが含まれている、列名の列は、行が表示されます。
プラグマindex_list
index_listプラグマ一覧表に関連付けられたすべてのインデックス。構文は次のとおりです。
プラグマ[データベース] Index_list(テーブル名)。
各インデックス列の結果セットは、配列インデックス名を指定すると、インデックスが一意の識別子の表示行かどうかを示します。
journal_modeプラグマ
journal_modeプラグマを取得または設定しますログファイルが格納されているとどのようにログモードを処理します。構文は次のとおりです::
プラグマjournal_mode。 プラグマjournal_mode =モード。 プラグマdatabase.journal_mode。 プラグマdatabase.journal_mode =モード。
ここでは、ログは5つのモードをサポートしています。
Pragma 值 | 描述 |
---|---|
DELETE | 默认模式。在该模式下,在事务结束时,日志文件将被删除。 |
TRUNCATE | 日志文件被阶段为零字节长度。 |
PERSIST | 日志文件被留在原地,但头部被重写,表明日志不再有效。 |
MEMORY | 日志记录保留在内存中,而不是磁盘上。 |
OFF | 不保留任何日志记录。 |
max_page_countプラグマ
max_page_countプラグマデータベースは、許可されたページの最大数を取得または設定します。構文は次のとおりです。
プラグマ[データベース] Max_page_count。 プラグマ[データベース] Max_page_count = max_page。
デフォルト値は1キロバイトのデフォルトのページサイズは、データベースはメガバイトで育った場合、つまり、ギガビット・ページである、1073741823です。
PAGE_COUNTプラグマ
PAGE_COUNTプラグマは、現在のデータベース内のページ数を返します。構文は次のとおりです。
プラグマ[データベース] PAGE_COUNT。
データベースファイルのサイズは* PAGE_SIZE PAGE_COUNTする必要があります。
PAGE_SIZEプラグマ
PAGE_SIZEプラグマは、データベース・ページのサイズを取得または設定します。構文は次のとおりです。
プラグマ[データベース] PAGE_SIZE; プラグマ[データベース] PAGE_SIZE =バイト。
デフォルトでは、許容サイズ512,1024,2048,4096,8192,16384,32768バイト。 既存のデータベース・ページ・サイズを変更する唯一の方法は、データベース真空直ちに、ページサイズを設定することです。
parser_traceプラグマ
parser_traceプラグマは、SQLが印刷デバッグ状態を制御するためのコマンドを解決し、以下のように、構文は次のとおりです。
プラグマparser_trace = [真|偽];
それはその状態をプリントアウトするようにし、SQLパーサーはSQLコマンドを解析することができ、デフォルトではfalseに設定されていますが、有効にするには、trueに設定されています。
RECURSIVE_TRIGGERSプラグマ
プラグマは、再帰的なトリガ機能を取得または設定しRECURSIVE_TRIGGERS。再帰トリガーが有効でない場合、トリガー・アクションは、別のトリガをトリガしません。 構文は次のとおりです。
プラグマRECURSIVE_TRIGGERS。 プラグマRECURSIVE_TRIGGERS = [真|偽];
schema_versionプラグマ
schema_versionプラグマを取得またはスキーマバージョン値がデータベースヘッダーに格納されています。構文は次のとおりです。
プラグマ[データベース] Schema_version。 プラグマschema_version =番号[データベース];
これは、アーキテクチャの変更を追跡するために使用される32ビット符号付き整数値です。 スキーマ変更コマンド(例えばCREATE ... ...またはDROPとして)、この値がインクリメントされるたびに。
secure_deleteプラグマ
secure_deleteプラグマは、コンテンツがデータベースから削除される方法を制御するために使用されます。構文は次のとおりです。
プラグマsecure_delete。 プラグマsecure_delete = [真|偽]; プラグマdatabase.secure_delete。 プラグマdatabase.secure_delete = [真|偽];
デフォルトのセキュリティフラグを削除し、通常は閉鎖され、それは変更するSQLITE_SECURE_DELETEオプションによって構築することができます。
SQL_TRACEプラグマ
画面上の結果を追跡するためのSQLダンプのSQL_TRACEプラグマ 。 構文は次のとおりです。
プラグマSQL_TRACE。 プラグマSQL_TRACE = [真|偽];
SQLiteはプラグマを参照するためにSQLITE_DEBUG命令でコンパイルする必要があります。
同期プラグマ
同期プラグマは、現在のディスク同期モード、データが物理ストレージに書き込まれるかモード制御正のSQLiteを取得または設定します。構文は次のとおりです。
プラグマ[データベース]同期; プラグマ[データベース]同期=モード。
SQLiteは以下の同期モードをサポートしています。
Pragma 值 | 描述 |
---|---|
0 或 OFF | 不进行同步。 |
1 或 NORMAL | 在关键的磁盘操作的每个序列后同步。 |
2 或 FULL | 在每个关键的磁盘操作后同步。 |
プラグマtemp_store
temp_storeプラグマは一時データベースファイルで使用されるストレージモードを取得または設定します。構文は次のとおりです。
プラグマtemp_store。 プラグマtemp_store =モード。
SQLiteは、次のストレージモードをサポートしています。
Pragma 值 | 描述 |
---|---|
0 或 DEFAULT | 默认使用编译时的模式。通常是 FILE。 |
1 或 FILE | 使用基于文件的存储。 |
2 或 MEMORY | 使用基于内存的存储。 |
temp_store_directoryプラグマ
temp_store_directoryプラグマは一時データベースファイルの場所を取得または設定します。構文は次のとおりです。
プラグマtemp_store_directory。 プラグマtemp_store_directory = 'のdirectory_path';
user_versionプラグマ
バージョンuser_versionプラグマは、ユーザーのデータベースヘッダーのカスタムに格納されている値を取得または設定します。 構文は次のとおりです。
プラグマ[データベース] User_version。 プラグマuser_version =番号[データベース];
このバージョンの追跡のために開発者が設定することができる32ビットの符号付き整数値です。
writable_schemaプラグマ
writable_schemaプラグマは、システム・テーブルを変更する機能を取得または設定しています。構文は次のとおりです。
プラグマwritable_schema。 プラグマwritable_schema = [真|偽];
プラグマは、テーブルがsqlite_し始めた場合は、sqlite_masterテーブルを含む、作成および変更することができます。 我々はプラグマ注意を払うを使用する場合は、データベース全体に損傷を与える可能性があるため。