Sqlite-pragma
SQLite-PRAGMA
SQLite PRAGMA コマンドは、SQLite環境内のさまざまな環境変数と状態フラグを制御するために使用される特別なコマンドです。 PRAGMA値は読み取ることができ、要件に基づいて設定することもできます。
構文
現在のPRAGMA値を照会するには、プラグマの名前を指定するだけです。
PRAGMAの新しい値を設定するには、次の構文を使用します。
設定モードは名前または同等の整数のいずれかです。ただし、返される値は常に整数になります。
auto_vacuumプラグマ
ここで、 mode は次のいずれかです。
Sr.No. | Pragma Value & Description |
---|---|
1 |
0 or NONE 自動バキュームは無効です。 これはデフォルトのモードであり、VACUUMコマンドを使用して手動でバキュームされない限り、データベースファイルのサイズが縮小することはありません。 |
2 |
1 or FULL 自動バキュームが有効になっており、完全に自動化されているため、データベースからデータが削除されるとデータベースファイルが縮小します。 |
3 |
2 or INCREMENTAL 自動バキュームは有効になっていますが、手動でアクティブにする必要があります。 このモードでは、参照データは維持されますが、空きページは単に空きリストに追加されます。 これらのページは、いつでも* incremental_vacuumプラグマ*を使用して復元できます。 |
cache_sizeプラグマ
case_sensitive_likeプラグマ
このプラグマの現在の状態を照会する方法はありません。
count_changesプラグマ
デフォルトでは、このプラグマはfalseであり、これらのステートメントは何も返しません。 trueに設定すると、上記の各ステートメントは、操作によって影響を受ける行を示す単一の整数値で構成される1列、1行のテーブルを返します。
database_listプラグマ
このプラグマは、開いているデータベースまたは接続されているデータベースごとに1行の3列のテーブルを返し、データベースシーケンス番号、名前、および関連付けられているファイルを提供します。
エンコーディングプラグマ
形式の値は、 UTF-8、UTF-16le 、または UTF-16be のいずれかです。
freelist_countプラグマ
形式の値は、 UTF-8、UTF-16le 、または UTF-16be のいずれかです。
index_infoプラグマ
結果セットには、列の順序、テーブル内の列インデックス、および列名を与えるインデックスに含まれる列ごとに1行が含まれます。
index_listプラグマ
結果セットには、インデックスシーケンス、インデックス名、およびインデックスが一意かどうかを示すフラグを与えるインデックスごとに1行が含まれます。
journal_modeプラグマ
次の表にリストされているように、5つのサポートされているジャーナルモードがあります。
Sr.No. | Pragma Value & Description |
---|---|
1 |
DELETE これがデフォルトのモードです。 ここで、トランザクションの終了時に、ジャーナルファイルが削除されます。 |
2 |
TRUNCATE ジャーナルファイルは、ゼロバイトの長さに切り捨てられます。 |
3 |
PERSIST ジャーナルファイルはそのまま残りますが、ヘッダーが上書きされ、ジャーナルが無効になったことを示します。 |
4 |
MEMORY ジャーナルレコードはディスクではなくメモリに保持されます。 |
5 |
OFF ジャーナルレコードは保持されません。 |
max_page_countプラグマ
デフォルト値は1,073,741,823です。これは1ギガページです。つまり、デフォルトの1 KBページサイズであれば、データベースは1テラバイトまで拡張できます。
page_countプラグマ
データベースファイルのサイズは、page_count * page_sizeである必要があります。
page_sizeプラグマ
デフォルトでは、許可されるサイズは512、1024、2048、4096、8192、16384、および32768バイトです。 既存のデータベースのページサイズを変更する唯一の方法は、ページサイズを設定し、すぐにデータベースをVACUUMすることです。
parser_traceプラグマ
デフォルトではfalseに設定されていますが、trueに設定して有効にすると、SQLパーサーはSQLコマンドを解析するときにその状態を出力します。
recursive_triggersプラグマ
schema_versionプラグマ
これは、スキーマの変更を追跡する32ビットの符号付き整数値です。 スキーマ変更コマンドが実行されるたび(CREATE …など) またはDROP …)、この値は増加します。
secure_deleteプラグマ
安全な削除フラグのデフォルト値は通常オフですが、これはSQLITE_SECURE_DELETEビルドオプションで変更できます。
sql_traceプラグマ
このプラグマを含めるには、SQLiteをSQLITE_DEBUGディレクティブでコンパイルする必要があります。
同期プラグマ
SQLiteは、表にリストされている次の同期モードをサポートします。
Sr.No. | Pragma Value & Description |
---|---|
1 |
0 or OFF 同期がまったくありません |
2 |
1 or NORMAL 重要なディスク操作の各シーケンスの後に同期する |
3 |
2 or FULL 重要なディスク操作のたびに同期する |
temp_storeプラグマ
SQLiteは次のストレージモードをサポートしています。
Sr.No. | Pragma Value & Description |
---|---|
1 |
0 or DEFAULT コンパイル時のデフォルトを使用します。 通常はFILE。 |
2 |
1 or FILE ファイルベースのストレージを使用します。 |
3 |
2 or MEMORY メモリベースのストレージを使用します。 |
temp_store_directoryプラグマ
user_versionプラグマ
これは32ビットの符号付き整数値で、バージョントラッキングのために開発者が設定できます。
writable_schemaプラグマ
このプラグマを設定すると、sqlite_masterテーブルなど、sqlite_で始まるテーブルを作成および変更できます。 プラグマを使用すると、データベースが完全に破損する可能性があるため、注意してください。