プラグマはいつ使用されますか?
データベースが初めて作成されたとき、またはデータベースへの接続ごとに?
これは、使用されているプラグマによって異なります。SQLiteの決定的なガイドから、データベース構成:
多くのプラグマには、一時的な形式と永続的な形式の両方があります。一時的なフォームは、その存続期間中、現在のセッションにのみ影響します。永続的なフォームはデータベースに保存され、すべてのセッションに影響します。
または、質問の言葉で言えば、データベースへの各接続で一時フォームが使用され、データベースが初めて作成されるときに永続フォームが使用されます。
プラグマのドキュメントでは、プラグマが一時的であるか永続的であるかを明示的に指定していません。しかし、それは通常次のようなことを言います
テーブルを作成する前に、自動バキュームをオンにする必要があります。テーブルの作成後に自動バキュームを有効または無効にすることはできません。
意味auto_vacuumは永続的なプラグマ、または
cache_sizeプラグマを使用してキャッシュサイズを変更すると、変更は現在のセッションでのみ有効になります。
意味cache_sizeは一時的なものです。
したがって、質問に答える最善の策は、特定のプラグマのドキュメントを注意深く読むことです。または、プラグマソースコードを調べることもできます(** PRAGMA [大文字と小文字を区別して検索)。