クリップボードのコンテンツをsqliteデータベースに保存しようとしています。作成されたデータベースとテーブル。
クリップボードを変更するたびにjournal
ファイルを作成したくないので、PRAGMA journal_mode = OFF;
フラグを渡そうとしました。しかし、sqlite
は次のような2つのコマンドしか受け入れないため、これらのコマンドを1つのライナーコマンドで渡すのは難しいです
sqlite3 clipboard_archive.db "insert into cb (cb_context) values ('clipboard');"
できます。 Q&A
のサイトを探しましたが、コマンドを次のようにエコーするようにアドバイスする人もいます。
echo "PRAGMA journal_mode = OFF;" | sqlite3 clipboard_archive.db "insert into cb (cb_context) values ('clipboard');"
ただし、PRAGMA journal_mode = OFF;
はsqlite3
コマンドプロンプト内で機能しますが、その方法では有効になりません。
ワンライナースクリプトの何が問題になっていますか?
ジャーナルが必要ない場合にSQLiteを使用する理由はわかりません(速度が問題になる場合は、はるかに高速なWALモードを検討しましたか?)セミコロンで区切って複数のコマンドを指定できます。
sqlite3 clipboard_archive.db "PRAGMA journal_mode = OFF; insert into cb (cb_context) values ('clipboard');"
derobert の回答はドットコマンドでは機能しないようですが、-cmd
を使用できます:sqlite3 tolls.sql3 -cmd ".mode csv" ".import tolls.csv tolls"
複数の-csv
コマンドを受け入れ、最後の引数の前にそれらを順番に実行します。