2022年10月1日土曜日

SQLite3 SQLiteアーカイブにファイルを追加する (.archive -i)

概要

SQLiteアーカイブファイルにファイルを追加するには「-i」オプションを使用する

実行環境
  • Windows 10 64bit
  • SQLite3 (3.39.2) Command-Line Shell

コマンドプロンプトやBashでアーカイブにファイルを追加する


C:\temp>rem #1

C:\temp>sqlite3 sample.sqlar -Ac

C:\temp>rem #2.

C:\temp>sqlite3 sample.sqlar -Ai sample.txt

C:\temp>rem #3.

C:\temp>sqlite3 sample.sqlar
SQLite version 3.39.2 2022-07-21 15:24:47
Enter ".help" for usage hints.
sqlite> select * from sqlar;
sample.txt|33206|1660619553|9|teststa
                
  1. SQLiteアーカイブを新規作成
  2. 作成したSQLiteアーカイブにsample.txtを追加
  3. sample.txtが追加されたことを確認

複数のファイルを一括で追加する場合、ファイルパスを羅列すればいい。


sqlite3 sample.sqlar -Ai sample1.txt sample2.txt sample3.txt
                

コマンドラインツール起動中にアーカイブにファイルを追加する


sqlite> -- # 1.
sqlite> .archive -cf sample.sqlar

sqlite> -- # 2.
sqlite> .open sample.sqlar

sqlite> -- # 3.
sqlite> .archive -i sample.txt

sqlite> -- # 4.
sqlite> select * from sqlar;
sample.txt|33206|1660619553|9|teststa
                
  1. 新規アーカイブファイルの作成
  2. 作成したアーカイブファイルを開く
  3. アーカイブにsample.txtを追加する
  4. sample.txtが追加されたことを確認

データが重複するようにファイルを追加しても何も起こらない

既に登録されているファイルと同じパスを指定してファイルを追加しても アーカイブ内のデータは更新されることはない。 また、エラーも出ないため注意が必要。


sqlite> .mode box
sqlite> select * from sqlar;
┌────────────┬───────┬────────────┬────┬─────────┐
│    name    │ mode  │   mtime    │ sz │  data   │
├────────────┼───────┼────────────┼────┼─────────┤
│ sample.txt │ 33206 │ 1660619553 │ 9  │ teststa │
└────────────┴───────┴────────────┴────┴─────────┘
sqlite> .archive -i sample.txt
sqlite> select * from sqlar;
┌────────────┬───────┬────────────┬────┬─────────┐
│    name    │ mode  │   mtime    │ sz │  data   │
├────────────┼───────┼────────────┼────┼─────────┤
│ sample.txt │ 33206 │ 1660619553 │ 9  │ teststa │
└────────────┴───────┴────────────┴────┴─────────┘
                

参考URL