SQLite-データベースの取り外し

SQLite DETACH DATABASE ステートメントは、以前にATTACHステートメントを使用してアタッチされていたデータベース接続から名前付きデータベースをデタッチおよび分離するために使用されます。 同じデータベースファイルに複数のエイリアスが添付されている場合、DETACHコマンドは指定された名前のみを切断し、残りの添付ファイルは引き続き続行されます。 main または temp データベースをデタッチすることはできません。

データベースがインメモリまたは一時データベースの場合、データベースは破棄され、コンテンツは失われます。

構文

以下は、SQLite DETACH DATABASE 'Alias-Name’ステートメントの基本的な構文です。

DETACH DATABASE 'Alias-Name';

ここで、「エイリアス名」は、ATTACHステートメントを使用してデータベースをアタッチするときに使用したものと同じエイリアスです。

*.database* コマンドを使用して確認できるように、前の章で作成し、「test」と「currentDB」で接続したデータベースがあると考えてください。
sqlite>.databases
seq  name             file
---  ---------------  ----------------------
0    main            /home/sqlite/testDB.db
2    test            /home/sqlite/testDB.db
3    currentDB       /home/sqlite/testDB.db

次のコマンドを使用して、testDB.dbから「currentDB」をデタッチしてみましょう。

sqlite> DETACH DATABASE 'currentDB';

現在、現在の添付ファイルを確認すると、testDB.dbがまだ「test」と「main」で接続されていることがわかります。

sqlite>.databases
seq  name             file
---  ---------------  ----------------------
0    main            /home/sqlite/testDB.db
2    test            /home/sqlite/testDB.db