English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite PRAGMAコマンドは、SQLite環境内の様々な環境変数と状態フラグを制御する特別なコマンドです。PRAGMA値は読み取れるだけでなく、必要に応じて設定できます。
現在のPRAGMA値をクエリするには、コンパイル指示の名前を提供するだけで構いません。
PRAGMA pragma_name;
PRAGMAに新しい値を設定するには、以下の構文を使用してください。
PRAGMA pragma_name = value;
設定可能なモードは名前や等価な整数であり、しかし返される値は常に整数です。
auto_vacuum PRAGMAを取得または設定するための自動真空モード。以下はシンプルな構文です。
PRAGMA [database.]auto_vacuum; PRAGMA [database.]auto_vacuum = mode;
以下の場所モードできます-
番号 | PRAGMA値と説明 |
---|---|
1 | 0またはNONE Auto-vacuumが無効です。これはデフォルトのモードであり、VACUUMコマンドを使用して手動でクリーンアップしない限り、データベースファイルのサイズは縮小しません。 |
2 | 1 または FULL Autoが有効-vacuumは自動的に行われ、データベースからデータを削除する際に、データベースファイルの縮小を許可します。 |
3 | 2 または INCREMENTAL Auto-vacuumが有効ですが、手動でアクティブ化する必要があります。このモードでは、参照データは保持されますが、空きページは単に空きリストに置かれます。これらのページはいつでも使用できますincremental_vacuum pragma。 |
cache_sizeメモリ内に設定できるか、または一時的に設定されるページキャッシュの最大サイズを取得できます。以下はシンプルな構文です。
PRAGMA [database.]cache_size; PRAGMA [database.]cache_size = pages;
pagesページ数を表す値はキャッシュ内のページ数を示します。組み込みページキャッシュのデフォルトサイズは2,000ページ、最小サイズは10ページ。
case_sensitive_like pragmaは組み込みLIKE表現の大文字小文字の感度を制御します。デフォルトでは、このpragmaはfalseであり、組み込みのLIKE演算子はアルファベットの大文字小文字を無視します。以下はシンプルな構文です。
PRAGMA case_sensitive_like = [true|false];
このコンパイル指示の現在の状態をクエリすることができません。
count_changes pragmaはデータ操作ステートメント(例えばINSERT、UPDATE、DELETE)の返り値を取得または設定します。以下はシンプルな構文です。
PRAGMA count_changes; PRAGMA count_changes = [true|false];
デフォルトでは、このコンパイル指示はfalseであり、これらのステートメントは何も返しません。trueに設定すると、各参照ステートメントは、操作が影響した行数を示す単一の列を持つ単一行のテーブルを返します。
database_listこのユーティリティは、すべての追加データベースをリストアウトします。以下はシンプルな構文です。
PRAGMA database_list;
このユーティリティは、オープンまたは接続されたデータベースごとに3つの列を持つテーブルを返し、データベースのシーケンス番号、名前、関連するファイルを示します。
encoding pragmaはデータベース内にどのようにエンコードされ、ファイルに保存されるコントロール文字列を制御します。以下はシンプルな構文です。
PRAGMA encoding; PRAGMA encoding = format;
フォーマット値は次の通りですUTF-8, UTF-16leまたはUTF-16beの一つ。
freelist_count Pragmaは整数を返し、現在どの程度のデータベースページが空きで利用可能であるかを示します。以下はシンプルな構文です。
PRAGMA [database.]freelist_count;
フォーマット値は次の通りですUTF-8, UTF-16leまたはUTF-16beの一つ。
index_info Pragmaはデータベースインデックスに関する情報を返します。以下は簡単な文法です
PRAGMA [database.]index_info(index_name);
結果セットはインデックスに含まれる各列ごとに1行を含み、列順序、テーブル内の列インデックスと列名を示します
index_list Pragmaはテーブルに関連するすべてのインデックスをリストアップします。以下は簡単な文法です
PRAGMA [database.]index_list(table_name);
結果セットは各インデックスごとに1行を含み、インデックスシーケンス、インデックス名、インデックスがユニークであるかどうかを示します
journal_mode Pragmaはログファイルの保存と処理方法を制御するログモードを取得または設定します。以下は簡単な文法です
PRAGMA journal_mode; PRAGMA journal_mode = mode; PRAGMA database.journal_mode; PRAGMA database.journal_mode = mode;
以下にサポートされている5つのログモードが示されています
番号 | PRAGMAの値と説明 |
---|---|
1 | DELETE これはデフォルトのモードです。取引が終了すると、ログファイルは削除されます |
2 | TRUNCATE ログファイルは0バイトの長さに切り取られます |
3 | PERSIST ログファイルはその場所に残りますが、タイトルが覆われ、ログが有効でないことを示します |
4 | MEMORY ログ記録はメモリに保存され、ディスク上には保存されません |
5 | OFF ログ記録を保持しません |
max_page_count PRAGMAはデータベースに対して許可される最大ページ数を取得または設定します。以下は簡単な文法です
PRAGMA [database.]max_page_count; PRAGMA [database.]max_page_count = max_page;
デフォルト値は1,073,741,823、つまり1GBのページ、これはデフォルトが1 KBページサイズの場合、データベースは成長できます1 TB。
page_count PRAGMAが返すデータベースの現在のページ数。以下は簡単な文法です-
PRAGMA [database.]page_count;
データベースファイルのサイズはpage_countに設定されるべきです * page_size。
page_size PRAGMAはデータベースのページサイズを取得または設定します。以下はシンプルな構文です。
PRAGMA [database.]page_size; PRAGMA [database.]page_size = bytes;
デフォルトでは、許可されているサイズは512、1024、2048、4096、8192、16384および32768バイト。現在のデータベース上のページサイズを変更する唯一の方法は、ページサイズを設定してすぐにデータベースに対してVACUUMを実行することです。
parser_trace PRAGMAはSQLコマンドの解析中にデバッグ状態をプリントするために使用されます。以下はシンプルな構文です。
PRAGMA parser_trace = [true|false];
デフォルトではfalseに設定されていますが、trueに設定することでSQL解析器はSQLコマンドの解析中にその状態をプリントします。
recursive_triggers PRAGMAは递帰的なトリガー機能を取得または設定します。递帰的なトリガーが無効の場合、トリガー操作は他のトリガーをトリガーしません。以下はシンプルな構文です。
PRAGMA recursive_triggers; PRAGMA recursive_triggers = [true|false];
schema_version PRAGMAはデータベースヘッダーに保存されているアーキテクチャバージョン値を取得または設定します。以下はシンプルな構文です。
PRAGMA [database.]schema_version; PRAGMA [database.]schema_version = number;
これは32アーキテクチャ変更を追跡するために使用されるシグネイチャドビット整値です。CREATE ...やDROP ...などの変更モードのコマンドを実行するたびに、この値は増加します。
secure_delete PRAGMAはデータベースから内容を削除する方法を制御するために使用されます。以下はシンプルな構文です。
PRAGMA secure_delete; PRAGMA secure_delete = [true|false]; PRAGMA database.secure_delete; PRAGMA database.secure_delete = [true|false];
安全删除标志的デフォルト値は通常offですが、SQLITE_SECURE_DELETE構築オプションを使用してデフォルト値を変更できます。
sql_trace PRAGMAはSQLトレース結果をスクリーンにダンプします。以下はシンプルな文法です。
PRAGMA sql_trace; PRAGMA sql_trace = [true|false];
このコンパイル指示を含めるには、SQLiteをSQLITE_DEBUGコマンドでコンパイルする必要があります。
synchronous PRAGMAは現在のディスク同期モードを取得または設定し、SQLiteが物理ストレージにデータを書き込む際の積極的な方法を制御します。以下はシンプルな文法です。
PRAGMA [データベース.]synchronous; PRAGMA [データベース.]synchronous = mode;
SQLiteは以下の表に示される以下の同期モードをサポートしています。
番号 | PRAGMAの値と説明 |
---|---|
1 | 0またはOFF 全く同期しません。 |
2 | 1 または NORMAL 重要なディスク操作シーケンスの後で同期します。 |
3 | 2 または FULL 重要なディスク操作の後で同期します。 |
temp_store PRAGMAは一時的なデータベースファイルが使用するストレージモードを取得または設定します。以下はシンプルな文法です。
PRAGMA temp_store; PRAGMA temp_store = mode;
SQLiteは以下のストレージモードをサポートしています。
番号 | PRAGMAの値と説明 |
---|---|
1 | 0またはDEFAULT コンパイル時にデフォルトの値を使用します。通常はFILEです。 |
2 | 1 または FILE ファイルベースのストレージを使用します。 |
3 | 2 または MEMORY メモリベースのストレージを使用します。 |
temp_store_directory PRAGMAは一時的なデータベースファイルの場所を取得または設定します。以下はシンプルな文法です。
PRAGMA temp_store_directory; PRAGMA temp_store_directory = 'directory_path';
user_versionデータベースヘッダーに保存されているユーザー定義のバージョン値を取得または設定するコンパイル指示です。以下はシンプルな文法です。
PRAGMA [データベース.]user_version; PRAGMA [データベース.]user_version = number;
これは32シグネチャ付きの整数値で、開発者がバージョン追跡のためにこの値を設定できます。
writable_schemaシステムテーブルの修正能力を取得または設定するためのコンパイル指示です。以下はシンプルな文法です。
PRAGMA writable_schema; PRAGMA writable_schema = [true|false];
このコンパイル指示が設定されている場合、sqlite_で始まるテーブル(sqlite_masterテーブルを含む)を作成および変更できます。コンパイル指示を使用する際には注意してください。なぜなら、データベースが完全に破損する原因になる可能性があるからです。