次のコマンドを使用して、sqlite3バージョン3.7.7、UNIX 11.4.2を起動します。
sqlite3 auction.db
auction.dbはまだ作成されていません。
sqlite> auction.db < create.sql;
私にこのエラーを与えます: near "auction": syntax error
スクリプトを実行するにはどうすればよいですか?
回答:
あなたは餌にしたいcreate.sql
にしsqlite3
ないSQLiteの自身の内側から、シェルから:
$ sqlite3 auction.db < create.sql
SQLiteのSQLバージョンは<
ファイルを認識しませんが、シェルは認識します。
<
入力リダイレクトとして理解するわけではありません。(PowerShellなど)
<
SQLiteプロンプトをすぐに終了し、エラーコードをシェルに返します。.read file.sql
プロンプトはそのままにし、-init file.sql
常に0を返す<
ため、スクリプト作成に最適です。また、.read
Windowsパスをサポートしないクロスプラットフォームとは異なります。
単純なクエリを実行してシェルスクリプトに戻るには、これがうまく機能すると思います。
$ sqlite3 example.db 'SELECT * FROM some_table;'
sqlite3 example.db 'SELECT * FROM some_table;'
、エコーをパイプ処理するのではなく、だと思います
sqlite3
からだけstdin
でなく、最後の引数からも実行するコマンドを読み取ることを示しています。
PowerShellを使用している方
PS C:\> Get-Content create.sql -Raw | sqlite3 auction.db
.read
から直接コマンドをsqlite3
コマンド:sqlite3 autction.db '.read create.sql'
。